From cc1367ee549da6ef839d7758eaf3921a3532ceb7 Mon Sep 17 00:00:00 2001 From: Daniel Trzesniak Date: Mon, 5 Jun 2023 23:33:33 +0200 Subject: [PATCH 01/24] 1st draft --- .../Import/4ImportScope-TechnicalMargin.ipynb | 216 ++++++++++++++---- 1 file changed, 166 insertions(+), 50 deletions(-) diff --git a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb index cecabd0d..f53da777 100644 --- a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb +++ b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb @@ -543,6 +543,31 @@ "execution_count": 0, "outputs": [] }, + { + "cell_type": "markdown", + "source": [ + "# Contractual Service Margin (Gross)", + "\n", + "\nThe scope below is simply used to set the appropriate Estimate Type C for $CSM$:" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "public interface ContractualServiceMarginGross : IScope", + "\n{", + "\n [NotVisible]string EstimateType => EstimateTypes.C;", + "\n ", + "\n double Value => -1d * GetScope(Identity, o => o.WithContext(EstimateType)).Value;", + "\n}" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, { "cell_type": "markdown", "source": [ @@ -630,62 +655,47 @@ "execution_count": 0, "outputs": [] }, + { + "cell_type": "markdown", + "source": [ + "## Contractual Service Margin (Reinsurance)" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, { "cell_type": "code", "source": [ - "public interface AllocateTechnicalMarginForReinsurance: AllocateTechnicalMargin", + "public interface CsmReinsurance: AllocateTechnicalMargin", "\n{", + "\n [NotVisible] string AllocateTechnicalMargin.EstimateType => EstimateTypes.C;", + "\n [NotVisible] string AllocateTechnicalMargin.ComputedEstimateType => EstimateType;", + "\n [NotVisible] bool AllocateTechnicalMargin.HasSwitch => false;", + "\n", "\n //Switch", "\n static ApplicabilityBuilder ScopeApplicabilityBuilder(ApplicabilityBuilder builder) => ", - "\n builder.ForScope(s => s", + "\n builder.ForScope(s => s", "\n .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.Identity.ProjectionPeriod > 0)", - "\n .WithApplicability(x => x.Identity.ValuationApproach == ValuationApproaches.PAA)", - "\n .WithApplicability(x => x.Identity.AocType == AocTypes.CL)", - "\n .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", + "\n .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", "\n .WithApplicability(x => true, //from here the applicabilities of the AllocateTechnicalMargin are applied with the following members redefined here.", "\n p => p.ForMember(s => s.ComputedEstimateType)", "\n .ForMember(s => s.HasSwitch))", "\n );", - "\n protected string ComputeReinsuranceEstimateType(double aggregatedFcf) => aggregatedFcf > Precision ? EstimateTypes.LR : EstimateTypes.C;", - "\n protected double loReCoBoundaryValue => GetScope(Identity).Value;", - "\n protected double loReCoBoundaryAggregatedValue => GetScope(Identity).AggregatedValue;", - "\n}", - "\n", - "\npublic interface AllocationForReinsurance : AllocateTechnicalMarginForReinsurance{", - "\n [NotVisible] string AllocateTechnicalMargin.ComputedEstimateType => ComputeReinsuranceEstimateType(loReCoBoundaryAggregatedValue + loReCoBoundaryValue);", - "\n [NotVisible] bool AllocateTechnicalMargin.HasSwitch => ComputedEstimateType != ComputeReinsuranceEstimateType(loReCoBoundaryAggregatedValue);", "\n}", "\n", - "\npublic interface AllocateTechnicalMarginForReinsurancePaa : AllocateTechnicalMarginForReinsurance{", - "\n double AllocateTechnicalMargin.Value => EstimateType switch {", - "\n EstimateTypes.LR => -1d * GetScope(Identity).Value,", - "\n _ => default", - "\n };", + "\npublic interface AllocationForReinsurance : CsmReinsurance{", + "\n [NotVisible] string AllocateTechnicalMargin.ComputedEstimateType => EstimateType;", + "\n [NotVisible] bool AllocateTechnicalMargin.HasSwitch => false;", "\n}", "\n", - "\npublic interface AllocateTechnicalMarginForReinsuranceCL : AllocateTechnicalMarginForReinsurance{ ", - "\n string AllocateTechnicalMargin.ComputedEstimateType => ComputeReinsuranceEstimateType(loReCoBoundaryAggregatedValue + loReCoBoundaryValue);", - "\n private double balancingValue => GetScope((Identity, InputSource.Cashflow)).Values", - "\n .GroupBy(x => x.Novelty, (k, v) => v.Last())", - "\n .Sum(aoc => { ", - "\n var id = Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty};", - "\n return GetScope(id).ComputedEstimateType != ComputedEstimateType ? ", - "\n GetScope(id).TechnicalMargin + GetScope(id).AggregatedTechnicalMargin", - "\n : (double)default; });", - "\n ", - "\n [NotVisible] bool AllocateTechnicalMargin.HasSwitch => Math.Abs(balancingValue) > Precision;", - "\n [NotVisible] double AllocateTechnicalMargin.AggregatedTechnicalMargin => balancingValue; ", + "\npublic interface AllocateTechnicalMarginForBopProjection: AllocateTechnicalMargin{", + "\n double AllocateTechnicalMargin.TechnicalMargin => GetScope(Identity with {AocType = AocTypes.EOP, Novelty = Novelties.C, ProjectionPeriod = Identity.ProjectionPeriod - 1}).Value; ", "\n}", "\n", - "\npublic interface AllocateTechnicalMarginForReinsuranceEop : AllocateTechnicalMarginForReinsurance{", + "\npublic interface CsmReinsuranceEop : CsmReinsurance{", "\n double AllocateTechnicalMargin.Value => GetScope((Identity, InputSource.Cashflow)).Values", - "\n .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", - "\n [NotVisible] string AllocateTechnicalMargin.ComputedEstimateType => ComputeReinsuranceEstimateType(AggregatedTechnicalMargin);", - "\n}", - "\n", - "\npublic interface AllocateTechnicalMarginForBopProjection: AllocateTechnicalMargin{", - "\n double AllocateTechnicalMargin.TechnicalMargin => GetScope(Identity with {AocType = AocTypes.EOP, Novelty = Novelties.C, ProjectionPeriod = Identity.ProjectionPeriod - 1}).Value;", - "\n bool AllocateTechnicalMargin.HasSwitch => false;", + "\n .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", "\n}" ], "metadata": {}, @@ -695,9 +705,7 @@ { "cell_type": "markdown", "source": [ - "# Contractual Service Margin", - "\n", - "\nThe scopes below are simply used to set the appropriate Estimate Type (C for $CSM$, and LR for $LoReCo$), as well as to set $CSM$ values to be positive:" + "## Loss Recovery Component" ], "metadata": {}, "execution_count": 0, @@ -706,19 +714,101 @@ { "cell_type": "code", "source": [ - "public interface ContractualServiceMargin : IScope", - "\n{", - "\n [NotVisible]string EstimateType => EstimateTypes.C;", - "\n ", - "\n double Value => Identity.IsReinsurance ", - "\n ? -1d * GetScope(Identity, o => o.WithContext(EstimateType)).Value", - "\n : -1d * GetScope(Identity, o => o.WithContext(EstimateType)).Value;", + "public interface LorecoCalculation : IScope", + "\n{ ", + "\n //Switch", + "\n static ApplicabilityBuilder ScopeApplicabilityBuilder(ApplicabilityBuilder builder) => ", + "\n builder.ForScope(s => s", + "\n .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.Identity.ProjectionPeriod > 0)", + "\n .WithApplicability(x => x.Identity.ValuationApproach == ValuationApproaches.PAA)", + "\n .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", + "\n );", + "\n", + "\n protected double loReCoBoundaryValue => GetScope(Identity).Value;", + "\n protected double loReCoBoundaryAggregatedValue => GetScope(Identity).AggregatedValue;", + "\n", + "\n double Value => -1d * loReCoBoundaryValue; //TODO fix here", + "\n}", + "\n", + "\npublic interface LorecoCalculationForBopProjection: LorecoCalculation{", + "\n double LorecoCalculation.Value => GetScope(Identity with {AocType = AocTypes.EOP, Novelty = Novelties.C, ProjectionPeriod = Identity.ProjectionPeriod - 1}).Value;", + "\n}", + "\n", + "\npublic interface LorecoCalculationPaa : LorecoCalculation{", + "\n double LorecoCalculation.Value => -1d * loReCoBoundaryValue;", + "\n}", + "\n", + "\npublic interface LorecoCalculationEop : LorecoCalculation{", + "\n double LorecoCalculation.Value => GetScope((Identity, InputSource.Cashflow)).Values", + "\n .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", "\n}" ], "metadata": {}, "execution_count": 0, "outputs": [] }, + { + "cell_type": "code", + "source": [ + "// public interface AllocateTechnicalMarginForReinsurance: AllocateTechnicalMargin", + "\n// {", + "\n// //Switch", + "\n// static ApplicabilityBuilder ScopeApplicabilityBuilder(ApplicabilityBuilder builder) => ", + "\n// builder.ForScope(s => s", + "\n// .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.Identity.ProjectionPeriod > 0)", + "\n// .WithApplicability(x => x.Identity.ValuationApproach == ValuationApproaches.PAA)", + "\n// .WithApplicability(x => x.Identity.AocType == AocTypes.CL)", + "\n// .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", + "\n// .WithApplicability(x => true, //from here the applicabilities of the AllocateTechnicalMargin are applied with the following members redefined here.", + "\n// p => p.ForMember(s => s.ComputedEstimateType)", + "\n// .ForMember(s => s.HasSwitch))", + "\n// );", + "\n// protected string ComputeReinsuranceEstimateType(double aggregatedFcf) => aggregatedFcf > Precision ? EstimateTypes.LR : EstimateTypes.C;", + "\n// protected double loReCoBoundaryValue => GetScope(Identity).Value;", + "\n// protected double loReCoBoundaryAggregatedValue => GetScope(Identity).AggregatedValue;", + "\n// }", + "\n", + "\n// public interface AllocationForReinsurance : AllocateTechnicalMarginForReinsurance{", + "\n// [NotVisible] string AllocateTechnicalMargin.ComputedEstimateType => ComputeReinsuranceEstimateType(loReCoBoundaryAggregatedValue + loReCoBoundaryValue);", + "\n// [NotVisible] bool AllocateTechnicalMargin.HasSwitch => ComputedEstimateType != ComputeReinsuranceEstimateType(loReCoBoundaryAggregatedValue);", + "\n// }", + "\n", + "\n// public interface AllocateTechnicalMarginForReinsurancePaa : AllocateTechnicalMarginForReinsurance{", + "\n// double AllocateTechnicalMargin.Value => EstimateType switch {", + "\n// EstimateTypes.LR => -1d * GetScope(Identity).Value,", + "\n// _ => default", + "\n// };", + "\n// }", + "\n", + "\n// public interface AllocateTechnicalMarginForReinsuranceCL : AllocateTechnicalMarginForReinsurance{ ", + "\n// string AllocateTechnicalMargin.ComputedEstimateType => ComputeReinsuranceEstimateType(loReCoBoundaryAggregatedValue + loReCoBoundaryValue);", + "\n// private double balancingValue => GetScope((Identity, InputSource.Cashflow)).Values", + "\n// .GroupBy(x => x.Novelty, (k, v) => v.Last())", + "\n// .Sum(aoc => { ", + "\n// var id = Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty};", + "\n// return GetScope(id).ComputedEstimateType != ComputedEstimateType ? ", + "\n// GetScope(id).TechnicalMargin + GetScope(id).AggregatedTechnicalMargin", + "\n// : (double)default; });", + "\n ", + "\n// [NotVisible] bool AllocateTechnicalMargin.HasSwitch => Math.Abs(balancingValue) > Precision;", + "\n// [NotVisible] double AllocateTechnicalMargin.AggregatedTechnicalMargin => balancingValue; ", + "\n// }", + "\n", + "\n// public interface AllocateTechnicalMarginForReinsuranceEop : AllocateTechnicalMarginForReinsurance{", + "\n// double AllocateTechnicalMargin.Value => GetScope((Identity, InputSource.Cashflow)).Values", + "\n// .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", + "\n// [NotVisible] string AllocateTechnicalMargin.ComputedEstimateType => ComputeReinsuranceEstimateType(AggregatedTechnicalMargin);", + "\n// }", + "\n", + "\n// public interface AllocateTechnicalMarginForBopProjection: AllocateTechnicalMargin{", + "\n// double AllocateTechnicalMargin.TechnicalMargin => GetScope(Identity with {AocType = AocTypes.EOP, Novelty = Novelties.C, ProjectionPeriod = Identity.ProjectionPeriod - 1}).Value;", + "\n// bool AllocateTechnicalMargin.HasSwitch => false;", + "\n// }" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, { "cell_type": "markdown", "source": [ @@ -732,15 +822,41 @@ "cell_type": "code", "source": [ "public interface LossRecoveryComponent : IScope", - "\n{ ", + "\n{", "\n [NotVisible]string EstimateType => EstimateTypes.LR;", "\n ", - "\n double Value => GetScope(Identity, o => o.WithContext(EstimateType)).Value;", + "\n double Value => GetScope(Identity).Value;", "\n}" ], "metadata": {}, "execution_count": 0, "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# Contractual Service Margin" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "public interface ContractualServiceMargin : IScope", + "\n{", + "\n [NotVisible]string EstimateType => EstimateTypes.C;", + "\n ", + "\n double Value => Identity.IsReinsurance ", + "\n ? -1d * GetScope(Identity, o => o.WithContext(EstimateType)).Value", + "\n : GetScope(Identity, o => o.WithContext(EstimateType)).Value;", + "\n}", + "\n" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] } ] } \ No newline at end of file From 068fa8c9db1308e45a1dceba773ad3ba9ace7c83 Mon Sep 17 00:00:00 2001 From: Daniel Trzesniak Date: Tue, 6 Jun 2023 22:06:48 +0200 Subject: [PATCH 02/24] Fix Loreco FP --- ifrs17-template/Report/ReportEyCases.ipynb | 18 ----- ifrs17-template/Report/Reports.ipynb | 76 ++++++++++++---------- ifrs17/Report/ReportScopes.ipynb | 2 - 3 files changed, 43 insertions(+), 53 deletions(-) diff --git a/ifrs17-template/Report/ReportEyCases.ipynb b/ifrs17-template/Report/ReportEyCases.ipynb index b6e753ab..5453593e 100644 --- a/ifrs17-template/Report/ReportEyCases.ipynb +++ b/ifrs17-template/Report/ReportEyCases.ipynb @@ -589,15 +589,6 @@ "execution_count": 0, "outputs": [] }, - { - "cell_type": "markdown", - "source": [ - "**TODO** Example is wrong, as the Loreco is not properly calculated --> Fix Loreco" - ], - "metadata": {}, - "execution_count": 0, - "outputs": [] - }, { "cell_type": "code", "source": [ @@ -680,15 +671,6 @@ "execution_count": 0, "outputs": [] }, - { - "cell_type": "markdown", - "source": [ - "**TODO** Example is wrong, as the Loreco is not properly calculated --> Fix Loreco" - ], - "metadata": {}, - "execution_count": 0, - "outputs": [] - }, { "cell_type": "code", "source": [ diff --git a/ifrs17-template/Report/Reports.ipynb b/ifrs17-template/Report/Reports.ipynb index ec6492d7..ec3cb523 100644 --- a/ifrs17-template/Report/Reports.ipynb +++ b/ifrs17-template/Report/Reports.ipynb @@ -58,7 +58,7 @@ { "cell_type": "code", "source": [ - "#!eval-notebook \"../Import/CloseImportTemplate\"" + "#!import \"../Import/CloseImportTemplate\"" ], "metadata": {}, "execution_count": 0, @@ -74,6 +74,16 @@ "execution_count": 0, "outputs": [] }, + { + "cell_type": "code", + "source": [ + "var reportingNode = \"CH\";", + "\nvar reportingPeriod = (2021, 3);" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, { "cell_type": "markdown", "source": [ @@ -96,8 +106,8 @@ "cell_type": "code", "source": [ "var pv = ifrs17.PresentValues;", - "\npv.ReportingNode = \"CH\";", - "\npv.ReportingPeriod = (2021, 3);", + "\npv.ReportingNode = reportingNode;", + "\npv.ReportingPeriod = reportingPeriod;", "\npv.CurrencyType = CurrencyType.Contractual;", "\npv.ColumnSlices = new string[]{};//\"GroupOfContract\", \"AmountType\", \"Scenario\", \"ServicePeriod\"", "\npv.Scenario = null; //\"All\";", @@ -125,8 +135,8 @@ "cell_type": "code", "source": [ "var ra = ifrs17.RiskAdjustments;", - "\nra.ReportingNode = \"CH\";", - "\nra.ReportingPeriod = (2021, 3);", + "\nra.ReportingNode = reportingNode;", + "\nra.ReportingPeriod = reportingPeriod;", "\nra.ColumnSlices = new string[]{};//\"GroupOfContract\", \"EconomicBasis\"", "\nra.DataFilter = null;//new [] {(\"GroupOfContract\", \"DT1.2\")};", "\n(await ra.ToReportAsync)" @@ -153,8 +163,8 @@ "cell_type": "code", "source": [ "var writtenActual = ifrs17.WrittenActuals;", - "\nwrittenActual.ReportingNode = \"CH\";", - "\nwrittenActual.ReportingPeriod = (2021, 3);", + "\nwrittenActual.ReportingNode = reportingNode;", + "\nwrittenActual.ReportingPeriod = reportingPeriod;", "\nwrittenActual.ColumnSlices = new string[]{};//\"GroupOfContract\"", "\nwrittenActual.DataFilter = null; //new [] {(\"GroupOfContract\", \"DT1.1\")};", "\n(await writtenActual.ToReportAsync)" @@ -181,8 +191,8 @@ "cell_type": "code", "source": [ "var accrualActual = ifrs17.AccrualActuals;", - "\naccrualActual.ReportingNode = \"CH\";", - "\naccrualActual.ReportingPeriod = (2021, 3);", + "\naccrualActual.ReportingNode = reportingNode;", + "\naccrualActual.ReportingPeriod = reportingPeriod;", "\naccrualActual.ColumnSlices = new string[]{};//\"GroupOfContract\", \"AmountType\"", "\naccrualActual.DataFilter = null; //new [] {(\"EstimateType\", \"AA\")};", "\n(await accrualActual.ToReportAsync)" @@ -206,8 +216,8 @@ "cell_type": "code", "source": [ "var deferrableActual = ifrs17.DeferralActuals;", - "\ndeferrableActual.ReportingNode = \"CH\";", - "\ndeferrableActual.ReportingPeriod = (2021, 3);", + "\ndeferrableActual.ReportingNode = reportingNode;", + "\ndeferrableActual.ReportingPeriod = reportingPeriod;", "\ndeferrableActual.ColumnSlices = new string[]{};//\"GroupOfContract\", \"AmountType\"", "\ndeferrableActual.DataFilter = null;//new [] {(\"GroupOfContract\", \"DT1.1\")};", "\n(await deferrableActual.ToReportAsync)" @@ -235,8 +245,8 @@ "cell_type": "code", "source": [ "var fulfillmentCashflows = ifrs17.FulfillmentCashflows;", - "\nfulfillmentCashflows.ReportingNode = \"CH\";", - "\nfulfillmentCashflows.ReportingPeriod = (2021, 3);", + "\nfulfillmentCashflows.ReportingNode = reportingNode;", + "\nfulfillmentCashflows.ReportingPeriod = reportingPeriod;", "\nfulfillmentCashflows.ColumnSlices = new string[]{};//\"EstimateType\"", "\nfulfillmentCashflows.DataFilter = null;// new [] {(\"GroupOfContract\", \"DT1.1\")};", "\n(await fulfillmentCashflows.ToReportAsync)" @@ -260,8 +270,8 @@ "cell_type": "code", "source": [ "var experienceAdjustments = ifrs17.ExperienceAdjustments;", - "\nexperienceAdjustments.ReportingNode = \"CH\";", - "\nexperienceAdjustments.ReportingPeriod = (2021, 3);", + "\nexperienceAdjustments.ReportingNode = reportingNode;", + "\nexperienceAdjustments.ReportingPeriod = reportingPeriod;", "\nexperienceAdjustments.ColumnSlices = new string[]{};//\"GroupOfContract\", \"AmountType\"", "\nexperienceAdjustments.DataFilter = null; //new [] {(\"GroupOfContract\", \"DT1.1\")};", "\n(await experienceAdjustments.ToReportAsync)" @@ -286,8 +296,8 @@ "cell_type": "code", "source": [ "var technicalMargins = ifrs17.TechnicalMargins;", - "\ntechnicalMargins.ReportingNode = \"CH\";", - "\ntechnicalMargins.ReportingPeriod = (2021, 3);", + "\ntechnicalMargins.ReportingNode = reportingNode;", + "\ntechnicalMargins.ReportingPeriod = reportingPeriod;", "\ntechnicalMargins.ColumnSlices = new string[]{};//\"GroupOfContract\", \"AmountType\"", "\ntechnicalMargins.DataFilter = null; //new [] {(\"GroupOfContract\", \"DT1.1\")};", "\n(await technicalMargins.ToReportAsync)" @@ -313,8 +323,8 @@ "cell_type": "code", "source": [ "var allocatedTechnicalMargins = ifrs17.AllocatedTechnicalMargins;", - "\nallocatedTechnicalMargins.ReportingNode = \"CH\";", - "\nallocatedTechnicalMargins.ReportingPeriod = (2021, 3);", + "\nallocatedTechnicalMargins.ReportingNode = reportingNode;", + "\nallocatedTechnicalMargins.ReportingPeriod = reportingPeriod;", "\nallocatedTechnicalMargins.ColumnSlices = new string[]{};//\"GroupOfContract\", \"EstimateType\"", "\nallocatedTechnicalMargins.DataFilter = null; //new [] {(\"GroupOfContract\", \"DT1.1\")};", "\n(await allocatedTechnicalMargins.ToReportAsync)" @@ -338,8 +348,8 @@ "cell_type": "code", "source": [ "var actuarialLrc = ifrs17.ActuarialLrc;", - "\nactuarialLrc.ReportingNode = \"CH\";", - "\nactuarialLrc.ReportingPeriod = (2021, 3);", + "\nactuarialLrc.ReportingNode = reportingNode;", + "\nactuarialLrc.ReportingPeriod = reportingPeriod;", "\nactuarialLrc.ColumnSlices = new string[]{};//\"GroupOfContract\"", "\nactuarialLrc.DataFilter = null; //new [] {(\"GroupOfContract\", \"DT1.1\")};", "\n(await actuarialLrc.ToReportAsync)" @@ -363,8 +373,8 @@ "cell_type": "code", "source": [ "var lrc = ifrs17.Lrc;", - "\nlrc.ReportingNode = \"CH\";", - "\nlrc.ReportingPeriod = (2021, 3);", + "\nlrc.ReportingNode = reportingNode;", + "\nlrc.ReportingPeriod = reportingPeriod;", "\nlrc.ColumnSlices = new string[]{};//\"GroupOfContract\",", "\nlrc.DataFilter = null; //new [] {(\"GroupOfContract\", \"DT1.1\")};", "\n(await lrc.ToReportAsync)" @@ -388,8 +398,8 @@ "cell_type": "code", "source": [ "var actuarialLic = ifrs17.ActuarialLic;", - "\nactuarialLic.ReportingNode = \"CH\";", - "\nactuarialLic.ReportingPeriod = (2021, 3);", + "\nactuarialLic.ReportingNode = reportingNode;", + "\nactuarialLic.ReportingPeriod = reportingPeriod;", "\nactuarialLic.ColumnSlices = new string[]{};//\"GroupOfContract\", \"AmountType\"", "\nactuarialLic.DataFilter = null; //new [] {(\"GroupOfContract\", \"DT1.1\")};", "\n(await actuarialLic.ToReportAsync)" @@ -413,8 +423,8 @@ "cell_type": "code", "source": [ "var lic = ifrs17.Lic;", - "\nlic.ReportingNode = \"CH\";", - "\nlic.ReportingPeriod = (2021, 3);", + "\nlic.ReportingNode = reportingNode;", + "\nlic.ReportingPeriod = reportingPeriod;", "\nlic.ColumnSlices = new string[]{};//\"GroupOfContract\", \"AmountType\"", "\nlic.DataFilter = null; //new [] {(\"GroupOfContract\", \"DT1.1\")};", "\n(await lic.ToReportAsync)" @@ -440,10 +450,10 @@ "cell_type": "code", "source": [ "var financialPerformance = ifrs17.FinancialPerformance;", - "\nfinancialPerformance.ReportingNode = \"CH\";", - "\nfinancialPerformance.ReportingPeriod = (2021, 3);", + "\nfinancialPerformance.ReportingNode = reportingNode;", + "\nfinancialPerformance.ReportingPeriod = reportingPeriod;", "\nfinancialPerformance.ColumnSlices = new string[]{};//\"GroupOfContract\"", - "\nfinancialPerformance.DataFilter = null; //new [] {(\"GroupOfContract\", \"DT1.1\")};", + "\nfinancialPerformance.DataFilter = null; //new [] {(\"GroupOfContract\", \"DTR1.1\")};", "\n(await financialPerformance.ToReportAsync) with {GroupDefaultExpanded = 3}" ], "metadata": {}, @@ -465,10 +475,10 @@ "cell_type": "code", "source": [ "var financialPerformanceAlternative = ifrs17.FinancialPerformanceAlternative;", - "\nfinancialPerformanceAlternative.ReportingNode = \"CH\";", - "\nfinancialPerformanceAlternative.ReportingPeriod = (2021,3);", + "\nfinancialPerformanceAlternative.ReportingNode = reportingNode;", + "\nfinancialPerformanceAlternative.ReportingPeriod = reportingPeriod;", "\nfinancialPerformanceAlternative.ColumnSlices = new string[]{};//\"GroupOfContract\"", - "\nfinancialPerformanceAlternative.DataFilter = null;//new [] {(\"GroupOfContract\", \"DTR1.1\")}; //new [] {(\"GroupOfContract\", \"DT1.1\")};", + "\nfinancialPerformanceAlternative.DataFilter = null; //new [] {(\"GroupOfContract\", \"DT1.1\")};", "\n(await financialPerformanceAlternative.ToReportAsync) with {GroupDefaultExpanded = 3}" ], "metadata": {}, diff --git a/ifrs17/Report/ReportScopes.ipynb b/ifrs17/Report/ReportScopes.ipynb index b52a303f..0c91297f 100644 --- a/ifrs17/Report/ReportScopes.ipynb +++ b/ifrs17/Report/ReportScopes.ipynb @@ -911,8 +911,6 @@ "\n .AggregateOver(nameof(Novelty), nameof(VariableType))", "\n .SelectToDataCube(v => v with { Novelty = Novelties.C, VariableType = \"ISE11\" });", "\n", - "\n IDataCube NonFinancialChangesToIr => -1 * (Amortization + NonFinancialChanges).SelectToDataCube(v => v with { VariableType = \"ISE10\" });", - "\n", "\n IDataCube Fx => -1 * Loreco.Filter((\"VariableType\", AocTypes.FX))", "\n .AggregateOver(nameof(Novelty))", "\n .SelectToDataCube(v => v with { VariableType = \"IFIE3\" });", From bfe0b711a0e75fcb0808d5115ba2bb4025d8a024 Mon Sep 17 00:00:00 2001 From: Daniel Trzesniak Date: Tue, 6 Jun 2023 22:19:43 +0200 Subject: [PATCH 03/24] Avoid Loreco for LIC --- ifrs17/Import/4ImportScope-TechnicalMargin.ipynb | 2 +- ifrs17/Import/ImportStorage.ipynb | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb index f53da777..58d7c735 100644 --- a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb +++ b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb @@ -624,7 +624,7 @@ "source": [ "public interface LoReCoBoundary : IScope", "\n{", - "\n private IEnumerable underlyingGic => GetStorage().GetUnderlyingGic(Identity);", + "\n private IEnumerable underlyingGic => GetStorage().GetUnderlyingGic(Identity, LiabilityTypes.LRC);", "\n ", "\n double Value => underlyingGic.Sum(gic => GetStorage().GetReinsuranceCoverage(Identity, gic) * ", "\n GetScope(Identity with {DataNode = gic}).Value);", diff --git a/ifrs17/Import/ImportStorage.ipynb b/ifrs17/Import/ImportStorage.ipynb index 588c1ce3..b8812f42 100644 --- a/ifrs17/Import/ImportStorage.ipynb +++ b/ifrs17/Import/ImportStorage.ipynb @@ -399,6 +399,8 @@ "\n public IEnumerable GetUnderlyingGic(ImportIdentity id) => !InterDataNodeParametersByGoc.TryGetValue(id.DataNode, out var interDataNodeParameters)", "\n ? Enumerable.Empty()", "\n : interDataNodeParameters[CurrentPeriod].Select(x => x.DataNode != id.DataNode ? x.DataNode : x.LinkedDataNode).Where(goc => !DataNodeDataBySystemName[goc].IsReinsurance);", + "\n", + "\n public IEnumerable GetUnderlyingGic(ImportIdentity id, string liabilityType) => GetUnderlyingGic(id).Where(goc => DataNodeDataBySystemName[goc].LiabilityType == liabilityType);", "\n ", "\n public double GetReinsuranceCoverage (ImportIdentity id, string gic) ", "\n {", From ec635bc98420763b72662f482f5f526f9e09850a Mon Sep 17 00:00:00 2001 From: Daniel Trzesniak Date: Tue, 13 Jun 2023 23:07:20 +0200 Subject: [PATCH 04/24] RI cover --- .../DataNodeParameters_CH_2020_12.csv | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/ifrs17-template/Files/DataNodes/DataNodeParameters_CH_2020_12.csv b/ifrs17-template/Files/DataNodes/DataNodeParameters_CH_2020_12.csv index 55accc65..9a40c46d 100644 --- a/ifrs17-template/Files/DataNodes/DataNodeParameters_CH_2020_12.csv +++ b/ifrs17-template/Files/DataNodes/DataNodeParameters_CH_2020_12.csv @@ -1,28 +1,28 @@ -@@Main,, -ReportingNode,Year,Month -CH,2020,12 -,, -@@SingleDataNodeParameter,, +@@Main,,,,,,,,, +ReportingNode,Year,Month,,,,,,, +CH,2020,12,,,,,,, +,,,,,,,,, +@@SingleDataNodeParameter,,,,,,,,, DataNode,PremiumAllocation,CashFlowPeriodicity,InterpolationMethod,EconomicBasisDriver,ReleasePattern0,ReleasePattern1,ReleasePattern2,ReleasePattern3,ReleasePattern4 -GicComplex,0.8,Monthly, -DT1.1,0.8,Monthly, -DT1.2,0.8,Monthly, -DT1.3,1,Monthly, -DT1.4,0.8,Monthly, -DT1.5,0.8,Monthly, -DT2.1,0.8,Monthly, -DT2.2,0.8,Monthly, -DT3.1,0.8,Monthly, -DT4.1,0.8,Monthly, -DT10.1,0,Yearly,Uniform, -DT10.2,0,Yearly,Uniform,N,1.41,1.14,0.87,0.58 -,, -@@InterDataNodeParameter,, -DataNode,LinkedDataNode,ReinsuranceCoverage -DT1.1,DTR1.1,1 -DT1.2,DTR1.2,1 -DT1.4,DTR1.3,1 -DT1.5,DTR1.4,1 -DT2.1,DTR2.1,1 -DT2.2,DTR2.2,1 -GricComplex,GicComplex,1 +GicComplex,0.8,Monthly,,,,,,, +DT1.1,0.8,Monthly,,,,,,, +DT1.2,0.8,Monthly,,,,,,, +DT1.3,1,Monthly,,,,,,, +DT1.4,0.8,Monthly,,,,,,, +DT1.5,0.8,Monthly,,,,,,, +DT2.1,0.8,Monthly,,,,,,, +DT2.2,0.8,Monthly,,,,,,, +DT3.1,0.8,Monthly,,,,,,, +DT4.1,0.8,Monthly,,,,,,, +DT10.1,0,Yearly,Uniform,,,,,, +DT10.2,0,Yearly,Uniform,N,1.41,1.14,0.87,0.58, +,,,,,,,,, +@@InterDataNodeParameter,,,,,,,,, +DataNode,LinkedDataNode,ReinsuranceCoverage,,,,,,, +DT1.1,DTR1.1,0.5,,,,,,, +DT1.2,DTR1.2,0.5,,,,,,, +DT1.4,DTR1.3,0.5,,,,,,, +DT1.5,DTR1.4,0.5,,,,,,, +DT2.1,DTR2.1,0.5,,,,,,, +DT2.2,DTR2.2,0.5,,,,,,, +GricComplex,GicComplex,0.5,,,,,,, From 313a7b7c4054b74f55b6442135cd74c148465f55 Mon Sep 17 00:00:00 2001 From: Daniel Trzesniak Date: Tue, 13 Jun 2023 23:20:56 +0200 Subject: [PATCH 05/24] Update --- .../Constants/CalculationEngine.ipynb | 5 +- .../EvaluateImportScopes.ipynb | 90 +++++++++++++------ ifrs17-template/Report/Reports.ipynb | 27 ++++-- .../Import/4ImportScope-TechnicalMargin.ipynb | 78 ++++++++++++++-- ifrs17/Utils/Extensions.ipynb | 5 +- 5 files changed, 157 insertions(+), 48 deletions(-) diff --git a/ifrs17-template/Constants/CalculationEngine.ipynb b/ifrs17-template/Constants/CalculationEngine.ipynb index 721e117b..cf40736b 100644 --- a/ifrs17-template/Constants/CalculationEngine.ipynb +++ b/ifrs17-template/Constants/CalculationEngine.ipynb @@ -20,9 +20,10 @@ "cell_type": "code", "source": [ "var projectName = \"ifrs17\";", - "\nvar environmentName = \"v1.3.0\";", + "\nvar environmentName = \"dev\";", "\nvar notebookName = \"CalculationEngine\";", - "\nvar calculationEngine = $\"#!import \\\"//{projectName}/{environmentName}/{notebookName}\\\"\";" + "\nvar calculationEngine = $\"#!import \\\"//{projectName}/{environmentName}/{notebookName}\\\"\";", + "\ncalculationEngine = $\"#!import \\\"../../ifrs17/CalculationEngine\\\"\";" ], "metadata": {}, "execution_count": 0, diff --git a/ifrs17-template/Import/InteractWithImportScopes/EvaluateImportScopes.ipynb b/ifrs17-template/Import/InteractWithImportScopes/EvaluateImportScopes.ipynb index aa205240..0f176220 100644 --- a/ifrs17-template/Import/InteractWithImportScopes/EvaluateImportScopes.ipynb +++ b/ifrs17-template/Import/InteractWithImportScopes/EvaluateImportScopes.ipynb @@ -47,6 +47,15 @@ "execution_count": 0, "outputs": [] }, + { + "cell_type": "code", + "source": [ + "" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, { "cell_type": "code", "source": [ @@ -88,7 +97,7 @@ { "cell_type": "code", "source": [ - "await Import.FromFile(\"../../Files/TransactionalData/NominalCashflowsPAA_CH_2020_12.csv\")", + "await Import.FromFile(\"../../Files/TransactionalData/NominalCashflows_CH_2021_3.csv\")", "\n .WithFormat(ImportFormats.Cashflow)", "\n .WithTarget(DataSource)", "\n .WithActivityLog()", @@ -120,8 +129,8 @@ "cell_type": "code", "source": [ "var reportingNode = \"CH\";", - "\nvar year = 2020;", - "\nvar month = 12;", + "\nvar year = 2021;", + "\nvar month = 3;", "\nvar importFormat = ImportFormats.Cashflow;", "\nvar scenario = (string)null;", "\n", @@ -211,7 +220,7 @@ { "cell_type": "code", "source": [ - "identities.First()" + "var idByDn = identities.ToDictionaryGrouped(x => x.DataNode, x => x.ToArray());" ], "metadata": {}, "execution_count": 0, @@ -220,7 +229,17 @@ { "cell_type": "code", "source": [ - "var idByDn = identities.ToDictionaryGrouped(x => x.DataNode, x => x.ToArray());" + "var riIds = idByDn[\"DTR1.1\"];" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "storage.GetReinsuranceCoverage(riIds.First(), \"DTR1.1\")", + "\n" ], "metadata": {}, "execution_count": 0, @@ -229,7 +248,7 @@ { "cell_type": "code", "source": [ - "var ivs = Scopes.ForIdentities(identities, storage).ToScopes().SelectMany(x => x.CalculatedIfrsVariables).ToArray();" + "var ivs = Scopes.ForIdentities(riIds, storage).ToScopes().SelectMany(x => x.CalculatedIfrsVariables).ToArray();" ], "metadata": {}, "execution_count": 0, @@ -247,7 +266,7 @@ { "cell_type": "code", "source": [ - "var ivs = Scopes.ForIdentities(identities.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes().SelectMany(x => x.PvLocked.Concat(x.PvCurrent)).ToArray();" + "Scopes.ForIdentities(riIds.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes()" ], "metadata": {}, "execution_count": 0, @@ -256,7 +275,10 @@ { "cell_type": "code", "source": [ - "var ivs = Scopes.ForIdentities(identities.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes().SelectMany(x => x.CumulatedNominal).ToArray();" + "var loreco = Scopes.ForIdentities(riIds.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes()", + "\n.Where(x => x.Value != 0)", + "\n.Select(x => (x.Identity, x.Value))", + "\n.ToArray();" ], "metadata": {}, "execution_count": 0, @@ -265,7 +287,10 @@ { "cell_type": "code", "source": [ - "var ivs = Scopes.ForIdentities(identities.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes().SelectMany(x => x.RaCurrent.Concat(x.RaLocked)).ToArray();" + "var csm = Scopes.ForIdentities(riIds.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes()", + "\n.Where(x => x.Value != 0)", + "\n.Select(x => (x.Identity, x.Value))", + "\n.ToArray();" ], "metadata": {}, "execution_count": 0, @@ -274,7 +299,7 @@ { "cell_type": "code", "source": [ - "var ivs = Scopes.ForIdentities(identities.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes().SelectMany(x => x.Actual.Concat(x.AdvanceActual).Concat(x.OverdueActual)).ToArray();" + "csm" ], "metadata": {}, "execution_count": 0, @@ -283,7 +308,7 @@ { "cell_type": "code", "source": [ - "var ivs = Scopes.ForIdentities(identities.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes().SelectMany(x => x.Deferrable).ToArray();" + "" ], "metadata": {}, "execution_count": 0, @@ -292,7 +317,7 @@ { "cell_type": "code", "source": [ - "var ivs = Scopes.ForIdentities(identities.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes().SelectMany(x => x.DeferrableAmFactor).ToArray();" + "" ], "metadata": {}, "execution_count": 0, @@ -301,7 +326,7 @@ { "cell_type": "code", "source": [ - "var ivs = Scopes.ForIdentities(identities.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes().SelectMany(x => x.BeEAForPremium.Concat(x.ActEAForPremium)).ToArray();" + "" ], "metadata": {}, "execution_count": 0, @@ -310,7 +335,7 @@ { "cell_type": "code", "source": [ - "var ivs = Scopes.ForIdentities(identities.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes().SelectMany(x => x.AmortizationFactor.Concat(x.Csms).Concat(x.Loss)).ToArray();" + "" ], "metadata": {}, "execution_count": 0, @@ -326,9 +351,9 @@ "outputs": [] }, { - "cell_type": "markdown", + "cell_type": "code", "source": [ - "# Temporary test of DAC for PAA" + "" ], "metadata": {}, "execution_count": 0, @@ -337,16 +362,25 @@ { "cell_type": "code", "source": [ - "var iv = Enumerable.Range(0,5).SelectMany(p=>", - "\n Scopes.ForIdentities(identities.Select(id => id with {ProjectionPeriod=p}), storage)", - "\n .ToScopes().SelectMany(x => x.Deferrable))", - "\n.AggregateProjections().Where(x => x.Values.Any(v => Math.Abs(v) > Precision ))", - "\n.ToArray();", - "\n", - "\nvar eops= iv.Where(x => x.AocType == \"EOP\");", - "\nvar ams = iv.Where(x => x.AocType == \"AM\" && x.EstimateType == \"DA\");", - "\n", - "\niv" + "" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "" ], "metadata": {}, "execution_count": 0, @@ -355,9 +389,7 @@ { "cell_type": "code", "source": [ - "//Testing", - "\n(Math.Abs(eops.Single(x => x.AccidentYear == 0).Values.First() - 647.5)< Precision, Math.Abs(eops.Single(x => x.AccidentYear == 2).Values.First() - 918.125)< Precision, ", - "\nMath.Abs(ams.Single(x => x.AccidentYear == 0).Values.First() - -352.5)< Precision, Math.Abs(ams.Single(x => x.AccidentYear == 2).Values.First() - -381.87499999999994)< Precision)" + "" ], "metadata": {}, "execution_count": 0, diff --git a/ifrs17-template/Report/Reports.ipynb b/ifrs17-template/Report/Reports.ipynb index ec3cb523..c4749259 100644 --- a/ifrs17-template/Report/Reports.ipynb +++ b/ifrs17-template/Report/Reports.ipynb @@ -102,6 +102,17 @@ "execution_count": 0, "outputs": [] }, + { + "cell_type": "code", + "source": [ + "#!eval-notebook \"../../ifrs17/Report/ReportScopes\"", + "\n#!eval-notebook \"../../ifrs17/Report/ReportMutableScopes\"", + "\nvar ifrs17 = new Ifrs17(Workspace, Scopes, Report, Export);" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, { "cell_type": "code", "source": [ @@ -110,8 +121,8 @@ "\npv.ReportingPeriod = reportingPeriod;", "\npv.CurrencyType = CurrencyType.Contractual;", "\npv.ColumnSlices = new string[]{};//\"GroupOfContract\", \"AmountType\", \"Scenario\", \"ServicePeriod\"", - "\npv.Scenario = null; //\"All\";", - "\npv.DataFilter = null; //new [] {(\"GroupOfContract\", \"DT1.2\"),(\"LiabilityType\", \"LIC\") };", + "\npv.Scenario = \"All\"; //\"Delta\";", + "\npv.DataFilter = new [] {(\"EconomicBasis\", \"L\") }; //new [] {(\"GroupOfContract\", \"DT1.2\"),(\"LiabilityType\", \"LIC\") };", "\n(await pv.ToReportAsync)" ], "metadata": {}, @@ -247,8 +258,8 @@ "var fulfillmentCashflows = ifrs17.FulfillmentCashflows;", "\nfulfillmentCashflows.ReportingNode = reportingNode;", "\nfulfillmentCashflows.ReportingPeriod = reportingPeriod;", - "\nfulfillmentCashflows.ColumnSlices = new string[]{};//\"EstimateType\"", - "\nfulfillmentCashflows.DataFilter = null;// new [] {(\"GroupOfContract\", \"DT1.1\")};", + "\nfulfillmentCashflows.ColumnSlices = new string[]{\"EstimateType\"};//\"EstimateType\"", + "\nfulfillmentCashflows.DataFilter = new [] {(\"GroupOfContract\", \"DTR1.1\")};// new [] {(\"GroupOfContract\", \"DT1.1\")};", "\n(await fulfillmentCashflows.ToReportAsync)" ], "metadata": {}, @@ -298,8 +309,8 @@ "var technicalMargins = ifrs17.TechnicalMargins;", "\ntechnicalMargins.ReportingNode = reportingNode;", "\ntechnicalMargins.ReportingPeriod = reportingPeriod;", - "\ntechnicalMargins.ColumnSlices = new string[]{};//\"GroupOfContract\", \"AmountType\"", - "\ntechnicalMargins.DataFilter = null; //new [] {(\"GroupOfContract\", \"DT1.1\")};", + "\ntechnicalMargins.ColumnSlices = new string[]{\"GroupOfContract\"};//\"GroupOfContract\", \"AmountType\"", + "\ntechnicalMargins.DataFilter = new [] {(\"GroupOfContract\", \"DTR1.1\")}; //new [] {(\"GroupOfContract\", \"DT1.1\")};", "\n(await technicalMargins.ToReportAsync)" ], "metadata": {}, @@ -325,8 +336,8 @@ "var allocatedTechnicalMargins = ifrs17.AllocatedTechnicalMargins;", "\nallocatedTechnicalMargins.ReportingNode = reportingNode;", "\nallocatedTechnicalMargins.ReportingPeriod = reportingPeriod;", - "\nallocatedTechnicalMargins.ColumnSlices = new string[]{};//\"GroupOfContract\", \"EstimateType\"", - "\nallocatedTechnicalMargins.DataFilter = null; //new [] {(\"GroupOfContract\", \"DT1.1\")};", + "\nallocatedTechnicalMargins.ColumnSlices = new string[]{\"GroupOfContract\", \"EstimateType\"};//\"GroupOfContract\", \"EstimateType\"", + "\nallocatedTechnicalMargins.DataFilter = new [] {(\"GroupOfContract\", \"DTR1.1\")}; //new [] {(\"GroupOfContract\", \"DT1.1\")};", "\n(await allocatedTechnicalMargins.ToReportAsync)" ], "metadata": {}, diff --git a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb index 58d7c735..759036b1 100644 --- a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb +++ b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb @@ -137,7 +137,7 @@ "\n builder.ForScope(s => s", "\n .WithApplicability(x => x.Identity.AocType != AocTypes.CF));", "\n ", - "\n public ActualBase[] ByAmountTypeAndEstimateType => GetStorage().GetPremiums().Select(pr =>", + "\n ActualBase[] ByAmountTypeAndEstimateType => GetStorage().GetPremiums().Select(pr =>", "\n Multiply( GetStorage().GetPremiumAllocationFactor(Identity),", "\n GetScope((Identity, pr, EstimateTypes.A, (int?)null))) ).ToArray();", "\n}", @@ -677,7 +677,7 @@ "\n static ApplicabilityBuilder ScopeApplicabilityBuilder(ApplicabilityBuilder builder) => ", "\n builder.ForScope(s => s", "\n .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.Identity.ProjectionPeriod > 0)", - "\n .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", + "\n .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", "\n .WithApplicability(x => true, //from here the applicabilities of the AllocateTechnicalMargin are applied with the following members redefined here.", "\n p => p.ForMember(s => s.ComputedEstimateType)", "\n .ForMember(s => s.HasSwitch))", @@ -693,7 +693,7 @@ "\n double AllocateTechnicalMargin.TechnicalMargin => GetScope(Identity with {AocType = AocTypes.EOP, Novelty = Novelties.C, ProjectionPeriod = Identity.ProjectionPeriod - 1}).Value; ", "\n}", "\n", - "\npublic interface CsmReinsuranceEop : CsmReinsurance{", + "\npublic interface CsmReinsuranceForEop : CsmReinsurance{", "\n double AllocateTechnicalMargin.Value => GetScope((Identity, InputSource.Cashflow)).Values", "\n .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", "\n}" @@ -721,13 +721,13 @@ "\n builder.ForScope(s => s", "\n .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.Identity.ProjectionPeriod > 0)", "\n .WithApplicability(x => x.Identity.ValuationApproach == ValuationApproaches.PAA)", - "\n .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", + "\n .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", "\n );", "\n", "\n protected double loReCoBoundaryValue => GetScope(Identity).Value;", - "\n protected double loReCoBoundaryAggregatedValue => GetScope(Identity).AggregatedValue;", + "\n protected double aggregatedLoReCoBoundary => GetScope(Identity).AggregatedValue;", "\n", - "\n double Value => -1d * loReCoBoundaryValue; //TODO fix here", + "\n double Value => -1d * loReCoBoundaryValue; // Fix Loreco", "\n}", "\n", "\npublic interface LorecoCalculationForBopProjection: LorecoCalculation{", @@ -738,7 +738,7 @@ "\n double LorecoCalculation.Value => -1d * loReCoBoundaryValue;", "\n}", "\n", - "\npublic interface LorecoCalculationEop : LorecoCalculation{", + "\npublic interface LorecoCalculationForEop : LorecoCalculation{", "\n double LorecoCalculation.Value => GetScope((Identity, InputSource.Cashflow)).Values", "\n .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", "\n}" @@ -747,6 +747,70 @@ "execution_count": 0, "outputs": [] }, + { + "cell_type": "code", + "source": [ + "// public interface LorecoCalculation : IScope", + "\n// { ", + "\n// //Switch", + "\n// static ApplicabilityBuilder ScopeApplicabilityBuilder(ApplicabilityBuilder builder) => ", + "\n// builder.ForScope(s => s", + "\n// .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.Identity.ProjectionPeriod > 0)", + "\n// .WithApplicability(x => x.Identity.ValuationApproach == ValuationApproaches.PAA)", + "\n// .WithApplicability(x => x.Identity.AocType == AocTypes.CL)", + "\n// .WithApplicability(x => x.Identity.AocType == AocTypes.AM)", + "\n// .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", + "\n// );", + "\n", + "\n// //protected", + "\n// double loReCoBoundaryValue => GetScope(Identity).Value;", + "\n// //protected", + "\n// double aggregatedLoReCoBoundary => GetScope(Identity).AggregatedValue;", + "\n// //private", + "\n// double reinsuranceCsm => -1d * GetScope(Identity).Value;", + "\n// //private", + "\n// double aggregatedReinsuranceCsm => -1d * GetScope(Identity).Value;", + "\n", + "\n// double Value => -1d * Math.Min(loReCoBoundaryValue + AggregatedValue, Math.Max(AggregatedValue, -1d * aggregatedReinsuranceCsm)) ;", + "\n", + "\n// double AggregatedValue => GetScope((Identity, InputSource.Cashflow)).Values", + "\n// .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", + "\n// }", + "\n", + "\n// public interface LorecoCalculationForBopProjection: LorecoCalculation{", + "\n// double LorecoCalculation.Value => GetScope(Identity with {AocType = AocTypes.EOP, Novelty = Novelties.C, ProjectionPeriod = Identity.ProjectionPeriod - 1}).Value;", + "\n// }", + "\n", + "\n// public interface LorecoCalculationPaa : LorecoCalculation{", + "\n// double LorecoCalculation.Value => -1d * loReCoBoundaryValue;", + "\n// }", + "\n", + "\n// public interface LorecoCalculationForCl : LorecoCalculation{", + "\n// double LorecoCalculation.Value => (loReCoBoundaryValue + aggregatedLoReCoBoundary) switch {", + "\n// > Precision => default,", + "\n// _ => -1d * GetScope((Identity, InputSource.Cashflow)).Values", + "\n// .GroupBy(x => x.Novelty, (k, v) => v.Last())", + "\n// .Sum(aoc => { ", + "\n// var id = Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty};", + "\n// var scope = GetScope(id);", + "\n// return scope.AggregatedValue + scope.Value;})", + "\n// };", + "\n// }", + "\n", + "\n// public interface LorecoCalculationForAm : LorecoCalculation{", + "\n// private string economicBasis => GetScope(Identity).EconomicBasis;", + "\n// double LorecoCalculation.Value => -1d * AggregatedValue * GetScope((Identity, AmountTypes.CU, 0), o => o.WithContext(economicBasis)).Value;", + "\n// }", + "\n", + "\n// public interface LorecoCalculationForEop : LorecoCalculation{", + "\n// double LorecoCalculation.Value => GetScope((Identity, InputSource.Cashflow)).Values", + "\n// .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", + "\n// }" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, { "cell_type": "code", "source": [ diff --git a/ifrs17/Utils/Extensions.ipynb b/ifrs17/Utils/Extensions.ipynb index 41a92e0e..358aecba 100644 --- a/ifrs17/Utils/Extensions.ipynb +++ b/ifrs17/Utils/Extensions.ipynb @@ -177,8 +177,9 @@ "public static double CheckStringForExponentialAndConvertToDouble (this string s)", "\n{ ", "\n if (s == null) return default;", - "\n if (double.TryParse(s, NumberStyles.Number, CultureInfo.InvariantCulture, out var doubleValue)) return doubleValue;", - "\n else { ApplicationMessage.Log(Error.ParsingInvalidOrScientificValue, s); return 1; }", + "\n if (double.TryParse(s, NumberStyles.Number | NumberStyles.Float, CultureInfo.InvariantCulture, out var doubleValue)) return doubleValue;", + "\n ApplicationMessage.Log(Error.ParsingInvalidOrScientificValue, s);", + "\n return default; ", "\n}" ], "metadata": {}, From 1e2caa17c9ed0b771b194e276576ec24bec6da2f Mon Sep 17 00:00:00 2001 From: Daniel Trzesniak Date: Thu, 22 Jun 2023 14:15:34 +0200 Subject: [PATCH 06/24] Update to Loreco --- .../EvaluateImportScopes.ipynb | 44 +++--- .../Import/4ImportScope-TechnicalMargin.ipynb | 139 +++++++++--------- 2 files changed, 98 insertions(+), 85 deletions(-) diff --git a/ifrs17-template/Import/InteractWithImportScopes/EvaluateImportScopes.ipynb b/ifrs17-template/Import/InteractWithImportScopes/EvaluateImportScopes.ipynb index 0f176220..5b0b1a8d 100644 --- a/ifrs17-template/Import/InteractWithImportScopes/EvaluateImportScopes.ipynb +++ b/ifrs17-template/Import/InteractWithImportScopes/EvaluateImportScopes.ipynb @@ -47,15 +47,6 @@ "execution_count": 0, "outputs": [] }, - { - "cell_type": "code", - "source": [ - "" - ], - "metadata": {}, - "execution_count": 0, - "outputs": [] - }, { "cell_type": "code", "source": [ @@ -97,7 +88,21 @@ { "cell_type": "code", "source": [ - "await Import.FromFile(\"../../Files/TransactionalData/NominalCashflows_CH_2021_3.csv\")", + "await Import.FromFile(\"../../Files/TransactionalData/Openings_FR_2020_12.csv\")", + "\n .WithFormat(ImportFormats.Opening)", + "\n .WithTarget(DataSource)", + "\n .WithActivityLog()", + "\n .ExecuteAsync()" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "", + "\nawait Import.FromFile(\"../../Files/TransactionalData/NominalCashflows_FR_2020_12.csv\")", "\n .WithFormat(ImportFormats.Cashflow)", "\n .WithTarget(DataSource)", "\n .WithActivityLog()", @@ -128,9 +133,9 @@ { "cell_type": "code", "source": [ - "var reportingNode = \"CH\";", - "\nvar year = 2021;", - "\nvar month = 3;", + "var reportingNode = \"FR\";", + "\nvar year = 2020;", + "\nvar month = 12;", "\nvar importFormat = ImportFormats.Cashflow;", "\nvar scenario = (string)null;", "\n", @@ -220,7 +225,8 @@ { "cell_type": "code", "source": [ - "var idByDn = identities.ToDictionaryGrouped(x => x.DataNode, x => x.ToArray());" + "var idByDn = identities.ToDictionaryGrouped(x => x.DataNode, x => x.ToArray());", + "\n//idByDn" ], "metadata": {}, "execution_count": 0, @@ -229,7 +235,8 @@ { "cell_type": "code", "source": [ - "var riIds = idByDn[\"DTR1.1\"];" + "var riIds = idByDn[\"EY59R.2\"];", + "\n//riIds" ], "metadata": {}, "execution_count": 0, @@ -238,7 +245,7 @@ { "cell_type": "code", "source": [ - "storage.GetReinsuranceCoverage(riIds.First(), \"DTR1.1\")", + "//storage.GetReinsuranceCoverage(riIds.First(), \"EY59R.2\")", "\n" ], "metadata": {}, @@ -266,7 +273,8 @@ { "cell_type": "code", "source": [ - "Scopes.ForIdentities(riIds.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes()" + "Scopes.ForIdentities(riIds.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes()", + "\n.Select(x => new {x.Identity, x.loReCoBoundaryValue, x.aggregatedLoReCoBoundary, x.reinsuranceCsm, x.AggregatedValue, x.Value})" ], "metadata": {}, "execution_count": 0, @@ -308,7 +316,7 @@ { "cell_type": "code", "source": [ - "" + "loreco" ], "metadata": {}, "execution_count": 0, diff --git a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb index 759036b1..81ca5f46 100644 --- a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb +++ b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb @@ -711,42 +711,6 @@ "execution_count": 0, "outputs": [] }, - { - "cell_type": "code", - "source": [ - "public interface LorecoCalculation : IScope", - "\n{ ", - "\n //Switch", - "\n static ApplicabilityBuilder ScopeApplicabilityBuilder(ApplicabilityBuilder builder) => ", - "\n builder.ForScope(s => s", - "\n .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.Identity.ProjectionPeriod > 0)", - "\n .WithApplicability(x => x.Identity.ValuationApproach == ValuationApproaches.PAA)", - "\n .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", - "\n );", - "\n", - "\n protected double loReCoBoundaryValue => GetScope(Identity).Value;", - "\n protected double aggregatedLoReCoBoundary => GetScope(Identity).AggregatedValue;", - "\n", - "\n double Value => -1d * loReCoBoundaryValue; // Fix Loreco", - "\n}", - "\n", - "\npublic interface LorecoCalculationForBopProjection: LorecoCalculation{", - "\n double LorecoCalculation.Value => GetScope(Identity with {AocType = AocTypes.EOP, Novelty = Novelties.C, ProjectionPeriod = Identity.ProjectionPeriod - 1}).Value;", - "\n}", - "\n", - "\npublic interface LorecoCalculationPaa : LorecoCalculation{", - "\n double LorecoCalculation.Value => -1d * loReCoBoundaryValue;", - "\n}", - "\n", - "\npublic interface LorecoCalculationForEop : LorecoCalculation{", - "\n double LorecoCalculation.Value => GetScope((Identity, InputSource.Cashflow)).Values", - "\n .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", - "\n}" - ], - "metadata": {}, - "execution_count": 0, - "outputs": [] - }, { "cell_type": "code", "source": [ @@ -757,24 +721,13 @@ "\n// builder.ForScope(s => s", "\n// .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.Identity.ProjectionPeriod > 0)", "\n// .WithApplicability(x => x.Identity.ValuationApproach == ValuationApproaches.PAA)", - "\n// .WithApplicability(x => x.Identity.AocType == AocTypes.CL)", - "\n// .WithApplicability(x => x.Identity.AocType == AocTypes.AM)", "\n// .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", "\n// );", "\n", - "\n// //protected", - "\n// double loReCoBoundaryValue => GetScope(Identity).Value;", - "\n// //protected", - "\n// double aggregatedLoReCoBoundary => GetScope(Identity).AggregatedValue;", - "\n// //private", - "\n// double reinsuranceCsm => -1d * GetScope(Identity).Value;", - "\n// //private", - "\n// double aggregatedReinsuranceCsm => -1d * GetScope(Identity).Value;", - "\n", - "\n// double Value => -1d * Math.Min(loReCoBoundaryValue + AggregatedValue, Math.Max(AggregatedValue, -1d * aggregatedReinsuranceCsm)) ;", + "\n// protected double loReCoBoundaryValue => GetScope(Identity).Value;", + "\n// protected double aggregatedLoReCoBoundary => GetScope(Identity).AggregatedValue;", "\n", - "\n// double AggregatedValue => GetScope((Identity, InputSource.Cashflow)).Values", - "\n// .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", + "\n// double Value => -1d * loReCoBoundaryValue; // Fix Loreco", "\n// }", "\n", "\n// public interface LorecoCalculationForBopProjection: LorecoCalculation{", @@ -785,23 +738,6 @@ "\n// double LorecoCalculation.Value => -1d * loReCoBoundaryValue;", "\n// }", "\n", - "\n// public interface LorecoCalculationForCl : LorecoCalculation{", - "\n// double LorecoCalculation.Value => (loReCoBoundaryValue + aggregatedLoReCoBoundary) switch {", - "\n// > Precision => default,", - "\n// _ => -1d * GetScope((Identity, InputSource.Cashflow)).Values", - "\n// .GroupBy(x => x.Novelty, (k, v) => v.Last())", - "\n// .Sum(aoc => { ", - "\n// var id = Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty};", - "\n// var scope = GetScope(id);", - "\n// return scope.AggregatedValue + scope.Value;})", - "\n// };", - "\n// }", - "\n", - "\n// public interface LorecoCalculationForAm : LorecoCalculation{", - "\n// private string economicBasis => GetScope(Identity).EconomicBasis;", - "\n// double LorecoCalculation.Value => -1d * AggregatedValue * GetScope((Identity, AmountTypes.CU, 0), o => o.WithContext(economicBasis)).Value;", - "\n// }", - "\n", "\n// public interface LorecoCalculationForEop : LorecoCalculation{", "\n// double LorecoCalculation.Value => GetScope((Identity, InputSource.Cashflow)).Values", "\n// .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", @@ -811,6 +747,75 @@ "execution_count": 0, "outputs": [] }, + { + "cell_type": "code", + "source": [ + "public interface LorecoCalculation : IScope", + "\n{ ", + "\n //Switch", + "\n static ApplicabilityBuilder ScopeApplicabilityBuilder(ApplicabilityBuilder builder) => ", + "\n builder.ForScope(s => s", + "\n .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.Identity.ProjectionPeriod > 0)", + "\n .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.GetStorage().IsInceptionYear(x.Identity.DataNode))", + "\n .WithApplicability(x => x.Identity.ValuationApproach == ValuationApproaches.PAA || x.Identity.AocType == AocTypes.BOP)", + "\n .WithApplicability(x => x.Identity.AocType == AocTypes.CL)", + "\n .WithApplicability(x => x.Identity.AocType == AocTypes.AM)", + "\n .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", + "\n );", + "\n", + "\n //protected", + "\n double loReCoBoundaryValue => GetScope(Identity).Value;", + "\n //protected", + "\n double aggregatedLoReCoBoundary => GetScope(Identity).AggregatedValue;", + "\n //private", + "\n double reinsuranceCsm => GetScope(Identity).Value;", + "\n //private", + "\n //double aggregatedReinsuranceCsm => -1d * GetScope(Identity).Value;", + "\n", + "\n double Value => -1d * Math.Min(loReCoBoundaryValue + aggregatedLoReCoBoundary + AggregatedValue, Math.Max(AggregatedValue, -1d * reinsuranceCsm)) ;", + "\n", + "\n double AggregatedValue => GetScope((Identity, InputSource.Cashflow)).Values", + "\n .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", + "\n}", + "\n", + "\npublic interface LorecoCalculationForBopProjection: LorecoCalculation{", + "\n double LorecoCalculation.Value => GetScope(Identity with {AocType = AocTypes.EOP, Novelty = Novelties.C, ProjectionPeriod = Identity.ProjectionPeriod - 1}).Value;", + "\n}", + "\n", + "\npublic interface LorecoCalculationForBop : LorecoCalculation{", + "\n double LorecoCalculation.Value => -1d * GetStorage().GetValue(Identity, null, EstimateTypes.LR, null, Identity.ProjectionPeriod);", + "\n }", + "\n", + "\npublic interface LorecoCalculationPaa : LorecoCalculation{", + "\n double LorecoCalculation.Value => -1d * loReCoBoundaryValue;", + "\n}", + "\n", + "\npublic interface LorecoCalculationForCl : LorecoCalculation{", + "\n double LorecoCalculation.Value => (loReCoBoundaryValue + aggregatedLoReCoBoundary) switch {", + "\n > Precision => default,", + "\n _ => -1d * GetScope((Identity, InputSource.Cashflow)).Values", + "\n .GroupBy(x => x.Novelty, (k, v) => v.Last())", + "\n .Sum(aoc => { ", + "\n var id = Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty};", + "\n var scope = GetScope(id);", + "\n return scope.AggregatedValue + scope.Value;})", + "\n };", + "\n}", + "\n", + "\npublic interface LorecoCalculationForAm : LorecoCalculation{", + "\n private string economicBasis => GetScope(Identity).EconomicBasis;", + "\n double LorecoCalculation.Value => -1d * AggregatedValue * GetScope((Identity, AmountTypes.CU, 0), o => o.WithContext(economicBasis)).Value;", + "\n}", + "\n", + "\npublic interface LorecoCalculationForEop : LorecoCalculation{", + "\n double LorecoCalculation.Value => GetScope((Identity, InputSource.Cashflow)).Values", + "\n .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", + "\n}" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, { "cell_type": "code", "source": [ From b79292e5b6aad047d882f2bfe9796528c933e9ca Mon Sep 17 00:00:00 2001 From: Daniel Trzesniak Date: Thu, 22 Jun 2023 17:31:26 +0200 Subject: [PATCH 07/24] clean --- .../Import/4ImportScope-TechnicalMargin.ipynb | 85 ++----------------- 1 file changed, 7 insertions(+), 78 deletions(-) diff --git a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb index 81ca5f46..24471a5a 100644 --- a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb +++ b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb @@ -252,9 +252,8 @@ "\n{", "\n private double ValueCsm => GetStorage().GetValue(Identity, null, EstimateTypes.C, null, Identity.ProjectionPeriod);", "\n private double ValueLc => GetStorage().GetValue(Identity, null, EstimateTypes.L, null, Identity.ProjectionPeriod);", - "\n private double ValueLr => GetStorage().GetValue(Identity, null, EstimateTypes.LR, null, Identity.ProjectionPeriod);", "\n ", - "\n double TechnicalMargin.Value => -1d * ValueCsm + ValueLc + ValueLr;", + "\n double TechnicalMargin.Value => -1d * ValueCsm + ValueLc;", "\n}", "\n", "\npublic interface TechnicalMarginDefaultValue : TechnicalMargin", @@ -461,7 +460,6 @@ "\n .Sum(aoc => ComputeTechnicalMarginFromIfrsVariables(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}));", "\n ", "\n private double ComputeTechnicalMarginFromIfrsVariables(ImportIdentity id) =>", - "\n GetStorage().GetValue(Identity, null, EstimateTypes.LR, null, Identity.ProjectionPeriod) +", "\n GetStorage().GetValue(Identity, null, EstimateTypes.L, null, Identity.ProjectionPeriod) - ", "\n GetStorage().GetValue(Identity, null, EstimateTypes.C, null, Identity.ProjectionPeriod);", "\n}" @@ -626,10 +624,8 @@ "\n{", "\n private IEnumerable underlyingGic => GetStorage().GetUnderlyingGic(Identity, LiabilityTypes.LRC);", "\n ", - "\n double Value => underlyingGic.Sum(gic => GetStorage().GetReinsuranceCoverage(Identity, gic) * ", - "\n GetScope(Identity with {DataNode = gic}).Value);", + "\n double Value => underlyingGic.Sum(gic => GetStorage().GetReinsuranceCoverage(Identity, gic) * GetScope(Identity with {DataNode = gic}).Value);", "\n ", - "\n", "\n double AggregatedValue => underlyingGic.Sum(gic => GetStorage().GetReinsuranceCoverage(Identity, gic) * ", "\n GetScope((Identity, InputSource.Cashflow)).Values", "\n .Sum(aoc => GetScope(Identity with {DataNode = gic, AocType = aoc.AocType, Novelty = aoc.Novelty}).Value));", @@ -763,19 +759,14 @@ "\n .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", "\n );", "\n", - "\n //protected", - "\n double loReCoBoundaryValue => GetScope(Identity).Value;", - "\n //protected", - "\n double aggregatedLoReCoBoundary => GetScope(Identity).AggregatedValue;", - "\n //private", - "\n double reinsuranceCsm => GetScope(Identity).Value;", - "\n //private", - "\n //double aggregatedReinsuranceCsm => -1d * GetScope(Identity).Value;", + "\n protected double loReCoBoundaryValue => GetScope(Identity).Value;", + "\n protected double aggregatedLoReCoBoundary => GetScope(Identity).AggregatedValue;", + "\n private double reinsuranceCsm => GetScope(Identity).Value;", "\n", - "\n double Value => -1d * Math.Min(loReCoBoundaryValue + aggregatedLoReCoBoundary + AggregatedValue, Math.Max(AggregatedValue, -1d * reinsuranceCsm)) ;", + "\n double Value => -1d * Math.Min(loReCoBoundaryValue + aggregatedLoReCoBoundary + AggregatedValue, Math.Max(AggregatedValue, -1d * reinsuranceCsm));", "\n", "\n double AggregatedValue => GetScope((Identity, InputSource.Cashflow)).Values", - "\n .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", + "\n .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", "\n}", "\n", "\npublic interface LorecoCalculationForBopProjection: LorecoCalculation{", @@ -816,68 +807,6 @@ "execution_count": 0, "outputs": [] }, - { - "cell_type": "code", - "source": [ - "// public interface AllocateTechnicalMarginForReinsurance: AllocateTechnicalMargin", - "\n// {", - "\n// //Switch", - "\n// static ApplicabilityBuilder ScopeApplicabilityBuilder(ApplicabilityBuilder builder) => ", - "\n// builder.ForScope(s => s", - "\n// .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.Identity.ProjectionPeriod > 0)", - "\n// .WithApplicability(x => x.Identity.ValuationApproach == ValuationApproaches.PAA)", - "\n// .WithApplicability(x => x.Identity.AocType == AocTypes.CL)", - "\n// .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", - "\n// .WithApplicability(x => true, //from here the applicabilities of the AllocateTechnicalMargin are applied with the following members redefined here.", - "\n// p => p.ForMember(s => s.ComputedEstimateType)", - "\n// .ForMember(s => s.HasSwitch))", - "\n// );", - "\n// protected string ComputeReinsuranceEstimateType(double aggregatedFcf) => aggregatedFcf > Precision ? EstimateTypes.LR : EstimateTypes.C;", - "\n// protected double loReCoBoundaryValue => GetScope(Identity).Value;", - "\n// protected double loReCoBoundaryAggregatedValue => GetScope(Identity).AggregatedValue;", - "\n// }", - "\n", - "\n// public interface AllocationForReinsurance : AllocateTechnicalMarginForReinsurance{", - "\n// [NotVisible] string AllocateTechnicalMargin.ComputedEstimateType => ComputeReinsuranceEstimateType(loReCoBoundaryAggregatedValue + loReCoBoundaryValue);", - "\n// [NotVisible] bool AllocateTechnicalMargin.HasSwitch => ComputedEstimateType != ComputeReinsuranceEstimateType(loReCoBoundaryAggregatedValue);", - "\n// }", - "\n", - "\n// public interface AllocateTechnicalMarginForReinsurancePaa : AllocateTechnicalMarginForReinsurance{", - "\n// double AllocateTechnicalMargin.Value => EstimateType switch {", - "\n// EstimateTypes.LR => -1d * GetScope(Identity).Value,", - "\n// _ => default", - "\n// };", - "\n// }", - "\n", - "\n// public interface AllocateTechnicalMarginForReinsuranceCL : AllocateTechnicalMarginForReinsurance{ ", - "\n// string AllocateTechnicalMargin.ComputedEstimateType => ComputeReinsuranceEstimateType(loReCoBoundaryAggregatedValue + loReCoBoundaryValue);", - "\n// private double balancingValue => GetScope((Identity, InputSource.Cashflow)).Values", - "\n// .GroupBy(x => x.Novelty, (k, v) => v.Last())", - "\n// .Sum(aoc => { ", - "\n// var id = Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty};", - "\n// return GetScope(id).ComputedEstimateType != ComputedEstimateType ? ", - "\n// GetScope(id).TechnicalMargin + GetScope(id).AggregatedTechnicalMargin", - "\n// : (double)default; });", - "\n ", - "\n// [NotVisible] bool AllocateTechnicalMargin.HasSwitch => Math.Abs(balancingValue) > Precision;", - "\n// [NotVisible] double AllocateTechnicalMargin.AggregatedTechnicalMargin => balancingValue; ", - "\n// }", - "\n", - "\n// public interface AllocateTechnicalMarginForReinsuranceEop : AllocateTechnicalMarginForReinsurance{", - "\n// double AllocateTechnicalMargin.Value => GetScope((Identity, InputSource.Cashflow)).Values", - "\n// .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", - "\n// [NotVisible] string AllocateTechnicalMargin.ComputedEstimateType => ComputeReinsuranceEstimateType(AggregatedTechnicalMargin);", - "\n// }", - "\n", - "\n// public interface AllocateTechnicalMarginForBopProjection: AllocateTechnicalMargin{", - "\n// double AllocateTechnicalMargin.TechnicalMargin => GetScope(Identity with {AocType = AocTypes.EOP, Novelty = Novelties.C, ProjectionPeriod = Identity.ProjectionPeriod - 1}).Value;", - "\n// bool AllocateTechnicalMargin.HasSwitch => false;", - "\n// }" - ], - "metadata": {}, - "execution_count": 0, - "outputs": [] - }, { "cell_type": "markdown", "source": [ From c0eb793c4c8b2e8cec39fa35ce7c3999fcec6242 Mon Sep 17 00:00:00 2001 From: Daniel Trzesniak Date: Fri, 23 Jun 2023 10:09:14 +0200 Subject: [PATCH 08/24] Type and style --- ifrs17/Import/1ImportScope-Identities.ipynb | 2 +- ifrs17/Utils/ImportCalculationMethods.ipynb | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ifrs17/Import/1ImportScope-Identities.ipynb b/ifrs17/Import/1ImportScope-Identities.ipynb index 74ca3428..dbbd691b 100644 --- a/ifrs17/Import/1ImportScope-Identities.ipynb +++ b/ifrs17/Import/1ImportScope-Identities.ipynb @@ -261,7 +261,7 @@ "source": [ "# AoC Step Structure", "\n", - "\nThe AoC Step structure is constructed from the data which is delivered as input. It is assumed that it depends only on the Group of Contrat (i.e. it is invariant across Amount types or Accident Year). " + "\nThe AoC Step structure is constructed from the data which is delivered as input. It is assumed that it depends only on the Group of Contract (i.e. it is invariant across Amount types or Accident Year). " ], "metadata": {}, "execution_count": 0, diff --git a/ifrs17/Utils/ImportCalculationMethods.ipynb b/ifrs17/Utils/ImportCalculationMethods.ipynb index 3ab4e8a9..0b959d61 100644 --- a/ifrs17/Utils/ImportCalculationMethods.ipynb +++ b/ifrs17/Utils/ImportCalculationMethods.ipynb @@ -406,9 +406,9 @@ "cell_type": "code", "source": [ "public static double[] SetProjectionValue(double value, int period = 0) => ", - "\nperiod == 0 || Math.Abs(value) > Precision", - "\n ? Enumerable.Repeat(0d, period + 1).Select((y, i) => i == period ? value : y).ToArray()", - "\n : null; " + "\n period == 0 || Math.Abs(value) > Precision", + "\n ? Enumerable.Repeat(0d, period + 1).Select((y, i) => i == period ? value : y).ToArray()", + "\n : null; " ], "metadata": {}, "execution_count": 0, From 471229f018d3c906893498adf89327eedc65fe33 Mon Sep 17 00:00:00 2001 From: Daniel Trzesniak Date: Fri, 23 Jun 2023 12:58:53 +0200 Subject: [PATCH 09/24] AdjustValues added --- ifrs17/Import/Importers.ipynb | 3 +++ ifrs17/Utils/ImportCalculationMethods.ipynb | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/ifrs17/Import/Importers.ipynb b/ifrs17/Import/Importers.ipynb index 36210b9b..4d8364cc 100644 --- a/ifrs17/Import/Importers.ipynb +++ b/ifrs17/Import/Importers.ipynb @@ -1426,6 +1426,9 @@ "\n var values = datarow.Table.Columns.Where(c => c.ColumnName.StartsWith(nameof(RawVariable.Values))).OrderBy(c => c.ColumnName.Length).ThenBy(c => c.ColumnName)", "\n .Select(x => datarow.Field(x.ColumnName).CheckStringForExponentialAndConvertToDouble()).ToArray();", "\n ", + "\n // Extra adjustment to values", + "\n values = values.AdjustValues(args, dataNodeData);", + "\n", "\n // Filter out empty raw variables for AocStep \\not\\in MandatoryAocSteps", "\n if(args.Scenario == null) {", "\n values = values.Prune();", diff --git a/ifrs17/Utils/ImportCalculationMethods.ipynb b/ifrs17/Utils/ImportCalculationMethods.ipynb index 0b959d61..eeb140a7 100644 --- a/ifrs17/Utils/ImportCalculationMethods.ipynb +++ b/ifrs17/Utils/ImportCalculationMethods.ipynb @@ -290,6 +290,24 @@ "execution_count": 0, "outputs": [] }, + { + "cell_type": "markdown", + "source": [ + "## Adjust Values for Cashflows" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "public static double[] AdjustValues(this double[] values, ImportArgs args, DataNodeData dataNodeData) => values;" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, { "cell_type": "markdown", "source": [ From acc114df95110a350611e9edb62625be1e30a6cf Mon Sep 17 00:00:00 2001 From: Daniel Trzesniak Date: Mon, 26 Jun 2023 10:44:12 +0200 Subject: [PATCH 10/24] DS --- ifrs17/DataModel/DataStructure.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ifrs17/DataModel/DataStructure.ipynb b/ifrs17/DataModel/DataStructure.ipynb index cdbd7f16..6d9b3882 100644 --- a/ifrs17/DataModel/DataStructure.ipynb +++ b/ifrs17/DataModel/DataStructure.ipynb @@ -760,7 +760,7 @@ { "cell_type": "code", "source": [ - "public record LiabilityType : KeyedDimension, IHierarchicalDimension", + "public record LiabilityType : KeyedOrderedDimension, IHierarchicalDimension", "\n{", "\n [Dimension(typeof(LiabilityType))]", "\n public string Parent { get; init; }", From ed70d8c34560f319b113c544b39c4ad384c5353a Mon Sep 17 00:00:00 2001 From: Daniel Trzesniak Date: Tue, 27 Jun 2023 11:53:11 +0200 Subject: [PATCH 11/24] accidentYear --- ifrs17/Import/Importers.ipynb | 20 +++++++++++++------- ifrs17/Utils/ImportCalculationMethods.ipynb | 2 +- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/ifrs17/Import/Importers.ipynb b/ifrs17/Import/Importers.ipynb index 4d8364cc..ae0cc9d7 100644 --- a/ifrs17/Import/Importers.ipynb +++ b/ifrs17/Import/Importers.ipynb @@ -1404,7 +1404,6 @@ "\n else interpolationMethod = parsingStorage.GetInterpolationMethod(dataNode);", "\n }", "\n", - "\n", "\n if(!parsingStorage.DataNodeDataBySystemName.TryGetValue(dataNode, out var dataNodeData)) {", "\n ApplicationMessage.Log(Error.InvalidDataNode, dataNode);", "\n return null;", @@ -1422,28 +1421,35 @@ "\n return null;", "\n }", "\n", + "\n int? accidentYear = default;", + "\n if(hasAccidentYearColumn && datarow.Field(nameof(RawVariable.AccidentYear)) != null) {", + "\n if(!Int32.TryParse(datarow.Field(nameof(RawVariable.AccidentYear)), out var parsedAccidentYear)) {", + "\n //ApplicationMessage.Log(Error.AccidentYearTypeNotValid, datarow.Field(nameof(RawVariable.AccidentYear))); return null;\",", + "\n }", + "\n else", + "\n accidentYear = (int?)parsedAccidentYear;", + "\n }", + "\n", "\n (string AmountType, string EstimateType) valueType = datarow.ParseAmountAndEstimateType(ImportFormats.Cashflow, parsingStorage.DimensionsWithExternalId, parsingStorage.EstimateType, parsingStorage.AmountType);", "\n var values = datarow.Table.Columns.Where(c => c.ColumnName.StartsWith(nameof(RawVariable.Values))).OrderBy(c => c.ColumnName.Length).ThenBy(c => c.ColumnName)", "\n .Select(x => datarow.Field(x.ColumnName).CheckStringForExponentialAndConvertToDouble()).ToArray();", - "\n ", + "\n", "\n // Extra adjustment to values", - "\n values = values.AdjustValues(args, dataNodeData);", + "\n values = values.AdjustValues(args, dataNodeData, accidentYear);", "\n", "\n // Filter out empty raw variables for AocStep \\not\\in MandatoryAocSteps", "\n if(args.Scenario == null) {", "\n values = values.Prune();", "\n if(values.Length == 0 && !parsingStorage.MandatoryAocSteps.Contains(new AocStep(aocType, novelty))) return null;", "\n }", - "\n ", + "\n", "\n var item = new RawVariable {", "\n DataNode = dataNode,", "\n AocType = aocType,", "\n Novelty = novelty,", "\n AmountType = valueType.AmountType,", "\n EstimateType = valueType.EstimateType,", - "\n AccidentYear = hasAccidentYearColumn && Int32.TryParse((datarow.Field(nameof(RawVariable.AccidentYear))), out var accidentYear)", - "\n ? accidentYear", - "\n : (int?)null,", + "\n AccidentYear = accidentYear,", "\n Partition = parsingStorage.TargetPartitionByReportingNodeAndPeriod.Id,", "\n Values = Multiply(GetSign(ImportFormats.Cashflow, (aocType, valueType.AmountType, valueType.EstimateType, dataNodeData.IsReinsurance), parsingStorage.HierarchyCache), values)", "\n .Interpolate(cashFlowPeriodicity, interpolationMethod)", diff --git a/ifrs17/Utils/ImportCalculationMethods.ipynb b/ifrs17/Utils/ImportCalculationMethods.ipynb index eeb140a7..8de08fe4 100644 --- a/ifrs17/Utils/ImportCalculationMethods.ipynb +++ b/ifrs17/Utils/ImportCalculationMethods.ipynb @@ -302,7 +302,7 @@ { "cell_type": "code", "source": [ - "public static double[] AdjustValues(this double[] values, ImportArgs args, DataNodeData dataNodeData) => values;" + "public static double[] AdjustValues(this double[] values, ImportArgs args, DataNodeData dataNodeData, int? AccidentYear) => values;" ], "metadata": {}, "execution_count": 0, From f08128e9321615904b1bd4c18ff435e0f0f1ddb2 Mon Sep 17 00:00:00 2001 From: Davide Colleoni Date: Wed, 28 Jun 2023 11:49:20 +0200 Subject: [PATCH 12/24] testing --- ifrs17-template/Test/EY-Ifrs17UseCases.ipynb | 383 +++++++++++++++++++ ifrs17-template/Test/Tests.ipynb | 9 + ifrs17/Test/TechnicalMarginTest.ipynb | 121 +++++- ifrs17/Test/TestData.ipynb | 1 + 4 files changed, 498 insertions(+), 16 deletions(-) create mode 100644 ifrs17-template/Test/EY-Ifrs17UseCases.ipynb diff --git a/ifrs17-template/Test/EY-Ifrs17UseCases.ipynb b/ifrs17-template/Test/EY-Ifrs17UseCases.ipynb new file mode 100644 index 00000000..659318c7 --- /dev/null +++ b/ifrs17-template/Test/EY-Ifrs17UseCases.ipynb @@ -0,0 +1,383 @@ +{ + "metadata": { + "authors": [], + "id": "NzniNM2ytEex3iY4pdGWSA", + "kernelspec": { + "display_name": "Formula Framework", + "language": "C#", + "name": "C#" + }, + "language_info": { + "file_extension": ".cs", + "mimetype": "text/plain", + "name": "C#" + } + }, + "nbformat": 4, + "nbformat_minor": 5, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "

EY IFRS 17 Use Cases

" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# Import and set up" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "#!import \"../Report/ReportEyCases\"" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "using FluentAssertions;" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "var reportingNode = \"FR\";", + "\nvar reportingPeriod = (2020, 12);" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# Illustration 57" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## Reinsurance Csm" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "allocatedTechnicalMargins.DataFilter = new []{(\"GroupOfContract\",\"EY57R.1\")};" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "var bop = allocatedTechnicalMargins.GetDataCube().Single(x => x.EstimateType == \"C\" && x.Novelty==\"N\" && x.VariableType==\"BOP\");", + "\nvar am = allocatedTechnicalMargins.GetDataCube().Single(x => x.EstimateType == \"C\" && x.Novelty==\"C\" && x.VariableType==\"AM\");" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "bop.Value.Should().BeApproximately(-12d, Precision);", + "\nam.Value.Should().BeApproximately(12d, Precision);" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# Illustration 58" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## Reinsurance Csm" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "allocatedTechnicalMargins.DataFilter = new []{(\"GroupOfContract\",\"EY58R.1\")};" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "var bop = allocatedTechnicalMargins.GetDataCube().Single(x => x.EstimateType == \"C\" && x.Novelty==\"N\" && x.VariableType==\"BOP\");", + "\nvar am = allocatedTechnicalMargins.GetDataCube().Single(x => x.EstimateType == \"C\" && x.Novelty==\"C\" && x.VariableType==\"AM\");" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "bop.Value.Should().BeApproximately(-45d, Precision);", + "\nam.Value.Should().BeApproximately(45d, Precision);" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## LoReCo " + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "var bop = allocatedTechnicalMargins.GetDataCube().Single(x => x.EstimateType == \"LR\" && x.Novelty==\"N\" && x.VariableType==\"BOP\");", + "\nvar am = allocatedTechnicalMargins.GetDataCube().Single(x => x.EstimateType == \"LR\" && x.Novelty==\"C\" && x.VariableType==\"AM\");" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "bop.Value.Should().BeApproximately(-27d, Precision);", + "\nam.Value.Should().BeApproximately(27d, Precision);" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# Illustration 59" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## Example A" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Reinsurance Csm" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "allocatedTechnicalMargins.DataFilter = new []{(\"GroupOfContract\",\"EY59R.1\")};" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "var bop = allocatedTechnicalMargins.GetDataCube().Single(x => x.EstimateType == \"C\" && x.Novelty==\"I\" && x.VariableType==\"BOP\");", + "\nvar ev = allocatedTechnicalMargins.GetDataCube().Single(x => x.EstimateType == \"C\" && x.Novelty==\"I\" && x.VariableType==\"EV\");", + "\nvar eop = allocatedTechnicalMargins.GetDataCube().Single(x => x.EstimateType == \"C\" && x.Novelty==\"C\" && x.VariableType==\"EOP\");" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "bop.Value.Should().BeApproximately(-25d, Precision);", + "\nev.Value.Should().BeApproximately(15d, Precision);", + "\neop.Value.Should().BeApproximately(-10d, Precision);" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Example B" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Reinsurance Csm" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "allocatedTechnicalMargins.DataFilter = new []{(\"GroupOfContract\",\"EY59R.2\")};" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "var bop = allocatedTechnicalMargins.GetDataCube().Single(x => x.EstimateType == \"C\" && x.Novelty==\"I\" && x.VariableType==\"BOP\");", + "\nvar ev = allocatedTechnicalMargins.GetDataCube().Single(x => x.EstimateType == \"C\" && x.Novelty==\"I\" && x.VariableType==\"EV\");", + "\nvar eop = allocatedTechnicalMargins.GetDataCube().Single(x => x.EstimateType == \"C\" && x.Novelty==\"C\" && x.VariableType==\"EOP\");" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "bop.Value.Should().BeApproximately(-25d, Precision);", + "\nev.Value.Should().BeApproximately(48d, Precision);", + "\neop.Value.Should().BeApproximately(23d, Precision);" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "### Reinsurance LoReCo" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "var ev = allocatedTechnicalMargins.GetDataCube().Single(x => x.EstimateType == \"LR\" && x.Novelty==\"I\" && x.VariableType==\"EV\");", + "\nvar eop = allocatedTechnicalMargins.GetDataCube().Single(x => x.EstimateType == \"LR\" && x.Novelty==\"C\" && x.VariableType==\"EOP\");" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "ev.Value.Should().BeApproximately(-18d, Precision);", + "\neop.Value.Should().BeApproximately(-18d, Precision);" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# Illustration 63" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## Reinsurance LoReCo" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "allocatedTechnicalMargins.DataFilter = new []{(\"GroupOfContract\",\"EY63R.1\")};" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "var bop = allocatedTechnicalMargins.GetDataCube().Single(x => x.EstimateType == \"C\" && x.Novelty==\"N\" && x.VariableType==\"BOP\");", + "\nvar ev = allocatedTechnicalMargins.GetDataCube().Single(x => x.EstimateType == \"C\" && x.Novelty==\"N\" && x.VariableType==\"EV\");", + "\nvar eop = allocatedTechnicalMargins.GetDataCube().Single(x => x.EstimateType == \"C\" && x.Novelty==\"C\" && x.VariableType==\"EOP\");" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "bop.Value.Should().BeApproximately(-5d, Precision);", + "\nev.Value.Should().BeApproximately(7.5d, Precision);", + "\neop.Value.Should().BeApproximately(2.5d, Precision);" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/ifrs17-template/Test/Tests.ipynb b/ifrs17-template/Test/Tests.ipynb index 0cc0bb0f..ebe1ad7b 100644 --- a/ifrs17-template/Test/Tests.ipynb +++ b/ifrs17-template/Test/Tests.ipynb @@ -143,6 +143,15 @@ "execution_count": 0, "outputs": [] }, + { + "cell_type": "code", + "source": [ + "#!eval-notebook \"EY-Ifrs17UseCases\"" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, { "cell_type": "code", "source": [ diff --git a/ifrs17/Test/TechnicalMarginTest.ipynb b/ifrs17/Test/TechnicalMarginTest.ipynb index bd1ec8e3..f18841c3 100644 --- a/ifrs17/Test/TechnicalMarginTest.ipynb +++ b/ifrs17/Test/TechnicalMarginTest.ipynb @@ -614,8 +614,8 @@ "\n", "\nvar reinsCsmLcSwitch_benchmark = new Dictionary()", "\n {", - "\n {new AocStep(\"BOP\",\"N\"),(0d, -100d)},", - "\n {new AocStep(\"IA\",\"N\"),(110d, 100d)},", + "\n {new AocStep(\"BOP\",\"N\"),(+100d, -100d)},", + "\n {new AocStep(\"IA\",\"N\"),(+10d, 100d)},", "\n {new AocStep(\"CL\",\"C\"), (+30d, 0d)},", "\n {new AocStep(\"AM\",\"C\"), (-70d, 0d)},", "\n {new AocStep(\"EOP\",\"C\"),(+70d, 0d)},", @@ -680,11 +680,11 @@ "\n", "\nvar reinsCsmLcSwitch_benchmark = new Dictionary()", "\n {", - "\n {new AocStep(\"BOP\",\"N\"),(0d, -100d)},", - "\n {new AocStep(\"IA\",\"N\"),(0d, -10d)},", - "\n {new AocStep(\"CL\",\"C\"), (0d, -30d)},", - "\n {new AocStep(\"AM\",\"C\"), (0d, 70d)},", - "\n {new AocStep(\"EOP\",\"C\"),(0d, -70d)},", + "\n {new AocStep(\"BOP\",\"N\"),(+100d, -100d)},", + "\n {new AocStep(\"IA\",\"N\"),(+10d, 50d)},", + "\n {new AocStep(\"CL\",\"C\"), (+30d, 0d)},", + "\n {new AocStep(\"AM\",\"C\"), (-70d, 25d)},", + "\n {new AocStep(\"EOP\",\"C\"),(70d, -25d)},", "\n };" ], "metadata": {}, @@ -740,22 +740,22 @@ "\n//Gross CSM-LC", "\nvar csmLcSwitch_benchmark = new Dictionary()", "\n {", - "\n {new AocStep(\"BOP\",\"I\"), (100d, 0d)},", + "\n {new AocStep(\"BOP\",\"I\"), (100d, 0d)},", "\n {new AocStep(\"IA\",\"I\"), (0.049962543d, 0d)},", - "\n {new AocStep(\"BOP\",\"N\"), (0d, 50d)},", - "\n {new AocStep(\"IA\",\"N\"), (0d, -10d)},", - "\n {new AocStep(\"CL\",\"C\"), (-40d, -40d)},", + "\n {new AocStep(\"BOP\",\"N\"), (0d, 50d)},", + "\n {new AocStep(\"IA\",\"N\"), (0d, -10d)},", + "\n {new AocStep(\"CL\",\"C\"), (-40d, -40d)},", "\n {new AocStep(\"AM\",\"C\"), (-30.024981271d, 0d)},", "\n {new AocStep(\"EOP\",\"C\"),(30.024981271d, 0d)},", "\n };", "\n", "\nvar reinsCsmLcSwitch_benchmark = new Dictionary()", "\n {", - "\n {new AocStep(\"BOP\",\"N\"),(0d, -100d)},", - "\n {new AocStep(\"IA\",\"N\"), (0d, -10d)},", - "\n {new AocStep(\"CL\",\"C\"), (140d, 110d)},", - "\n {new AocStep(\"AM\",\"C\"), (-70d, 0d)},", - "\n {new AocStep(\"EOP\",\"C\"),(70d, 0d)},", + "\n {new AocStep(\"BOP\",\"N\"),(100d, -50d)},", + "\n {new AocStep(\"IA\",\"N\"), (10d, 10d)},", + "\n {new AocStep(\"CL\",\"C\"), (30d, 40d)},", + "\n {new AocStep(\"AM\",\"C\"), (-70d, 0d)},", + "\n {new AocStep(\"EOP\",\"C\"),(70d, 0d)},", "\n };" ], "metadata": {}, @@ -780,6 +780,95 @@ "metadata": {}, "execution_count": 0, "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## Reinsurance LoReCo" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "var reinsBasicIfrsVariable = new IfrsVariable{Partition = partition.Id, DataNode = groupOfReinsuranceContracts, AccidentYear = null, AmountType = \"PR\", EstimateType = \"BE\", EconomicBasis = \"L\"};", + "\nvar grossBasicIfrsVariable = new IfrsVariable{Partition = partition.Id, DataNode = groupOfInsuranceContracts, AccidentYear = null, AmountType = \"Cl\", EstimateType = \"BE\", EconomicBasis = \"L\"};", + "\nvar inputDataSet = new IfrsVariable[]{", + "\n grossBasicIfrsVariable with {AocType = \"BOP\", Novelty = \"N\", Values = new double[] {20.0}},", + "\n grossBasicIfrsVariable with {AocType = \"MC\", Novelty = \"N\", Values = new double[] {10.0}}, ", + "\n grossBasicIfrsVariable with {AocType = \"IA\", Novelty = \"N\", Values = new double[] {-5.0}}, ", + "\n grossBasicIfrsVariable with {AocType = \"AU\", Novelty = \"N\", Values = new double[] {5.0}}, ", + "\n grossBasicIfrsVariable with {AocType = \"EV\", Novelty = \"N\", Values = new double[] {5.0}},", + "\n grossBasicIfrsVariable with {AocType = \"CL\", Novelty = \"C\", Values = new double[] {-5.0}},", + "\n grossBasicIfrsVariable with {AocType = \"AM\", Novelty = \"C\", Values = new double[] {1}, EstimateType = \"F\", AmountType = \"CU\"},", + "\n", + "\n reinsBasicIfrsVariable with {AocType = \"BOP\", Novelty = \"N\", Values = new double[] {-10.0}},", + "\n reinsBasicIfrsVariable with {AocType = \"MC\", Novelty = \"N\", Values = new double[] {19.0}},", + "\n reinsBasicIfrsVariable with {AocType = \"IA\", Novelty = \"N\", Values = new double[] {-44.0}},", + "\n reinsBasicIfrsVariable with {AocType = \"AU\", Novelty = \"N\", Values = new double[] {15.0}},", + "\n reinsBasicIfrsVariable with {AocType = \"EV\", Novelty = \"N\", Values = new double[] {55.0}},", + "\n reinsBasicIfrsVariable with {AocType = \"CL\", Novelty = \"C\", Values = new double[] {0.0}},", + "\n reinsBasicIfrsVariable with {AocType = \"AM\", Novelty = \"C\", Values = new double[] {0.5}, EstimateType = \"F\", AmountType = \"CU\"},", + "\n };", + "\n", + "\n//Gross CSM-LC", + "\nvar csmLcSwitch_benchmark = new Dictionary()", + "\n {", + "\n {new AocStep(\"BOP\",\"N\"),(0d, 20d)},", + "\n {new AocStep(\"MC\",\"N\"), (0d, 10d)},", + "\n {new AocStep(\"IA\",\"N\"), (0d, -5d)},", + "\n {new AocStep(\"AU\",\"N\"), (0d, 5d)},", + "\n {new AocStep(\"EV\",\"N\"), (0d, 5d)},", + "\n {new AocStep(\"CL\",\"C\"), (0d, -5d)},", + "\n {new AocStep(\"AM\",\"C\"), (0d, -30d)},", + "\n {new AocStep(\"EOP\",\"C\"),(0d, 0d)},", + "\n };", + "\n", + "\nvar reinsCsmLcSwitch_benchmark = new Dictionary()", + "\n {", + "\n {new AocStep(\"BOP\",\"N\"),( 10d, -20d)},", + "\n {new AocStep(\"MC\",\"N\"), (-19d, 19d)},", + "\n {new AocStep(\"IA\",\"N\"), ( 44d, -24d)},", + "\n {new AocStep(\"AU\",\"N\"), (-15d, 15d)},", + "\n {new AocStep(\"EV\",\"N\"), (-55d, 10d)},", + "\n {new AocStep(\"CL\",\"C\"), ( 0d, 0d)},", + "\n {new AocStep(\"AM\",\"C\"), ( 17.5d, 0d)},", + "\n {new AocStep(\"EOP\",\"C\"),(-17.5d, 0d)},", + "\n };" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "var activity = await CheckSwitchLogicAsync(inputDataSet, csmLcSwitch_benchmark, reinsCsmLcSwitch_benchmark);", + "\nactivity" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "activity.Status.Should().Be(ActivityLogStatus.Succeeded);" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] } ] } \ No newline at end of file diff --git a/ifrs17/Test/TestData.ipynb b/ifrs17/Test/TestData.ipynb index 8b5f8e0f..076f9df1 100644 --- a/ifrs17/Test/TestData.ipynb +++ b/ifrs17/Test/TestData.ipynb @@ -69,6 +69,7 @@ "\nCRU,I,CalculatedTelescopic,4,EndOfPeriod,EndOfPeriod,EndOfPeriod,EndOfPeriod,EndOfPeriod,80,1900,1", "\nEV,I,Optional,4,EndOfPeriod,EndOfPeriod,EndOfPeriod,EndOfPeriod,EndOfPeriod,90,1900,1", "\nBOP,N,Optional,4,Average,EndOfPeriod,EndOfPeriod,BeginningOfPeriod,EndOfPeriod,95,1900,1", + "\nMC,N,Optional,4,Average,EndOfPeriod,EndOfPeriod,BeginningOfPeriod,EndOfPeriod,100,1900,1", "\nCF,N,Calculated,4,Average,NotApplicable,EndOfPeriod,Delta,EndOfPeriod,110,1900,1", "\nIA,N,Calculated,4,Average,EndOfPeriod,EndOfPeriod,Delta,EndOfPeriod,120,1900,1", "\nAU,N,Optional,4,EndOfPeriod,EndOfPeriod,EndOfPeriod,EndOfPeriod,EndOfPeriod,130,1900,1", From e49cd5cb72a7700c2940286ab322acfe7ce6359d Mon Sep 17 00:00:00 2001 From: Davide Colleoni Date: Wed, 28 Jun 2023 17:19:41 +0200 Subject: [PATCH 13/24] update bms --- .../BM_CH_2021_3__C.csv | 18 ++++-- .../BM_CH_2021_3__LR.csv | 16 ++--- ...iableBenchmarks_2021_3_CH__Contractual.csv | 60 ++++++++++--------- 3 files changed, 53 insertions(+), 41 deletions(-) diff --git a/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__C.csv b/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__C.csv index b4d9507b..7e455d75 100644 --- a/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__C.csv +++ b/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__C.csv @@ -53,30 +53,38 @@ AccidentYear,AmountType,AocType,DataNode,EconomicBasis,EstimateType,Novelty,Valu ,,EV,DT4.1,,C,N,-1.49226 ,,IA,DT4.1,,C,N,0.00034 ,,AM,DTR1.1,,C,C,10.78121 -,,CL,DTR1.1,,C,C,43.67753 ,,EOP,DTR1.1,,C,C,-22.64964 ,,BOP,DTR1.1,,C,I,-24.07616 ,,CRU,DTR1.1,,C,I,-0.04965 ,,IA,DTR1.1,,C,I,-0.03848 ,,MC,DTR1.1,,C,I,-52.94408 +,,BOP,DTR1.1,,C,N,15.9547 +,,EV,DTR1.1,,C,N,27.7147 +,,IA,DTR1.1,,C,N,0.00813 ,,AM,DTR1.3,,C,C,10.78121 -,,CL,DTR1.3,,C,C,43.67753 ,,EOP,DTR1.3,,C,C,-22.64964 ,,BOP,DTR1.3,,C,I,-24.07616 ,,CRU,DTR1.3,,C,I,-0.04965 ,,IA,DTR1.3,,C,I,-0.03848 ,,MC,DTR1.3,,C,I,-52.94408 +,,BOP,DTR1.3,,C,N,15.9547 +,,EV,DTR1.3,,C,N,27.7147 +,,IA,DTR1.3,,C,N,0.00813 ,,AM,DTR1.4,,C,C,10.78121 -,,CL,DTR1.4,,C,C,43.67753 ,,EOP,DTR1.4,,C,C,-22.64964 ,,BOP,DTR1.4,,C,I,-24.07616 ,,CRU,DTR1.4,,C,I,-0.04965 ,,IA,DTR1.4,,C,I,-0.03848 ,,MC,DTR1.4,,C,I,-52.94408 +,,BOP,DTR1.4,,C,N,15.9547 +,,EV,DTR1.4,,C,N,27.7147 +,,IA,DTR1.4,,C,N,0.00813 ,,AM,DTR2.1,,C,C,10.78121 -,,CL,DTR2.1,,C,C,43.67753 ,,EOP,DTR2.1,,C,C,-22.64964 ,,BOP,DTR2.1,,C,I,-24.07616 ,,CRU,DTR2.1,,C,I,-0.04965 ,,IA,DTR2.1,,C,I,-0.03848 -,,MC,DTR2.1,,C,I,-52.94408 \ No newline at end of file +,,MC,DTR2.1,,C,I,-52.94408 +,,BOP,DTR2.1,,C,N,15.9547 +,,EV,DTR2.1,,C,N,27.7147 +,,IA,DTR2.1,,C,N,0.00813 \ No newline at end of file diff --git a/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__LR.csv b/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__LR.csv index 96b9555c..efa15e44 100644 --- a/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__LR.csv +++ b/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__LR.csv @@ -3,19 +3,19 @@ Month,ReportingNode,Scenario,Year 3,CH,,2021 @@LR AccidentYear,AmountType,AocType,DataNode,EconomicBasis,EstimateType,Novelty,Values0 -,,CL,DTR1.1,,LR,C,43.67753 -,,BOP,DTR1.1,,LR,N,-15.9547 +,,CL,DTR1.1,,LR,C,43.7022 +,,BOP,DTR1.1,,LR,N,-15.97937 ,,EV,DTR1.1,,LR,N,-27.7147 ,,IA,DTR1.1,,LR,N,-0.00813 -,,CL,DTR1.3,,LR,C,43.67753 -,,BOP,DTR1.3,,LR,N,-15.9547 +,,CL,DTR1.3,,LR,C,43.7022 +,,BOP,DTR1.3,,LR,N,-15.97937 ,,EV,DTR1.3,,LR,N,-27.7147 ,,IA,DTR1.3,,LR,N,-0.00813 -,,CL,DTR1.4,,LR,C,43.67753 -,,BOP,DTR1.4,,LR,N,-15.9547 +,,CL,DTR1.4,,LR,C,43.7022 +,,BOP,DTR1.4,,LR,N,-15.97937 ,,EV,DTR1.4,,LR,N,-27.7147 ,,IA,DTR1.4,,LR,N,-0.00813 -,,CL,DTR2.1,,LR,C,43.67753 -,,BOP,DTR2.1,,LR,N,-15.9547 +,,CL,DTR2.1,,LR,C,43.7022 +,,BOP,DTR2.1,,LR,N,-15.97937 ,,EV,DTR2.1,,LR,N,-27.7147 ,,IA,DTR2.1,,LR,N,-0.00813 \ No newline at end of file diff --git a/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2021_3_CH__Contractual.csv b/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2021_3_CH__Contractual.csv index 112c7918..ae0f2406 100644 --- a/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2021_3_CH__Contractual.csv +++ b/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2021_3_CH__Contractual.csv @@ -457,7 +457,7 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,,2020,USD,USD,,L,CHF,DT1.3,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,0.0163,IA 0,,2020,USD,USD,,L,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0.0163,IFIE1 0,,2020,USD,USD,,L,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0.0163,IR5 -0,,2020,USD,USD,,L,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0,ISE11 +0,,2020,USD,USD,,L,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0,ISE11 0,,2020,USD,USD,C,RA,CHF,DT1.3,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,29.96755,BOP 0,,2020,USD,USD,C,RA,CHF,DT1.3,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,11.96764,BOP 0,,2020,USD,USD,C,RA,CHF,DT1.3,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,-6,CF @@ -1203,22 +1203,23 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.4318,OCI1 0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,10.78121,AM 0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-24.07616,BOP -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.67753,CL +0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,15.9547,BOP 0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.04965,CRU 0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-22.64964,EOP +0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,27.7147,EV 0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.03848,IA -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.08813,IFIE1 -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,9.26655,ISE10 +0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.00813,IA +0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.08,IFIE1 +0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,9.27468,ISE10 0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-10.78121,ISE7 0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-52.94408,MC -0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-15.9547,BOP -0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.67753,CL +0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-15.97937,BOP +0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.7022,CL 0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP 0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.7147,EV 0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00813,IA 0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00813,IFIE1 -0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.00813,ISE10 -0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,ISE11 +0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0,ISE11 0,,2020,USD,USD,C,RA,CHF,DTR1.1,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-14.98378,BOP 0,,2020,USD,USD,C,RA,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-5.98382,BOP 0,,2020,USD,USD,C,RA,CHF,DTR1.1,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,3,CF @@ -1324,22 +1325,23 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.4318,OCI1 0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,10.78121,AM 0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-24.07616,BOP -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.67753,CL +0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,15.9547,BOP 0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.04965,CRU 0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-22.64964,EOP +0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,27.7147,EV 0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.03848,IA -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.08813,IFIE1 -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,9.26655,ISE10 +0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.00813,IA +0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.08,IFIE1 +0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,9.27468,ISE10 0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-10.78121,ISE7 0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-52.94408,MC -0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-15.9547,BOP -0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.67753,CL +0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-15.97937,BOP +0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.7022,CL 0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP 0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.7147,EV 0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00813,IA 0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00813,IFIE1 -0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.00813,ISE10 -0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,ISE11 +0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0,ISE11 0,NIC,2020,USD,USD,,OA,CHF,DTR1.3,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-2.5,BOP 0,NIC,2020,USD,USD,,OA,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP 0,NIC,2020,USD,USD,,OA,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-2.5,ISE2 @@ -1444,22 +1446,23 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.4318,OCI1 0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,10.78121,AM 0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-24.07616,BOP -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.67753,CL +0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,15.9547,BOP 0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.04965,CRU 0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-22.64964,EOP +0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,27.7147,EV 0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.03848,IA -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.08813,IFIE1 -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,9.26655,ISE10 +0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.00813,IA +0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.08,IFIE1 +0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,9.27468,ISE10 0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-10.78121,ISE7 0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-52.94408,MC -0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-15.9547,BOP -0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.67753,CL +0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-15.97937,BOP +0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.7022,CL 0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP 0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.7147,EV 0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00813,IA 0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00813,IFIE1 -0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.00813,ISE10 -0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,ISE11 +0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0,ISE11 0,NIC,2020,USD,USD,,OA,CHF,DTR1.4,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-10,BOP 0,NIC,2020,USD,USD,,OA,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP 0,NIC,2020,USD,USD,,OA,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-10,ISE2 @@ -1558,21 +1561,22 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,19.9817,MC 0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,10.78121,AM 0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-24.07616,BOP -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,43.67753,CL +0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,15.9547,BOP 0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-0.04965,CRU 0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-22.64964,EOP +0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,27.7147,EV 0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-0.03848,IA -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,0.08813,IFIE1 -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,9.26655,ISE10 +0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,0.00813,IA +0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,0.08,IFIE1 +0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,9.27468,ISE10 0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-10.78121,ISE7 0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-52.94408,MC -0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-15.9547,BOP -0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,43.67753,CL +0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-15.97937,BOP +0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,43.7022,CL 0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,0,EOP 0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-27.7147,EV 0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-0.00813,IA 0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-0.00813,IFIE1 -0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,0.00813,ISE10 0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,0,ISE11 0,,2020,USD,USD,C,RA,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-14.98378,BOP 0,,2020,USD,USD,C,RA,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-5.98382,BOP From 99e4bc827128282bf5d60acf9f3f6226282015a4 Mon Sep 17 00:00:00 2001 From: Davide Colleoni Date: Wed, 28 Jun 2023 17:20:25 +0200 Subject: [PATCH 14/24] scopes clean up 1 --- .../Import/4ImportScope-TechnicalMargin.ipynb | 320 +++++++----------- 1 file changed, 128 insertions(+), 192 deletions(-) diff --git a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb index 24471a5a..1ef1ac19 100644 --- a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb +++ b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb @@ -225,11 +225,13 @@ "\n{", "\n static ApplicabilityBuilder ScopeApplicabilityBuilder(ApplicabilityBuilder builder) => ", "\n builder.ForScope(s => s.WithApplicability(x => x.Identity.ValuationApproach == ValuationApproaches.VFA, p => p.ForMember(s => s.EconomicBasis))", + "\n .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.Identity.ProjectionPeriod > 0)", "\n .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I)", "\n .WithApplicability(x => x.Identity.AocType == AocTypes.CF)", "\n .WithApplicability(x => x.Identity.AocType == AocTypes.IA && x.Identity.Novelty == Novelties.I)", "\n .WithApplicability(x => x.Identity.AocType == AocTypes.EA && !x.Identity.IsReinsurance)", "\n .WithApplicability(x => x.Identity.AocType == AocTypes.AM)", + "\n .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", "\n );", "\n ", "\n [NotVisible] string EconomicBasis => EconomicBases.L;", @@ -243,11 +245,16 @@ "\n .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", "\n}", "\n", - "\npublic interface TechnicalMarginForCurrentBasis : TechnicalMargin", - "\n{", + "\npublic interface TechnicalMarginForCurrentBasis : TechnicalMargin{", "\n [NotVisible] string TechnicalMargin.EconomicBasis => EconomicBases.C;", "\n}", "\n", + "\npublic interface TechnicalMarginForBopProjection: TechnicalMargin{", + "\n double TechnicalMargin.Value => GetScope(Identity with {AocType = AocTypes.EOP, Novelty = Novelties.C, ProjectionPeriod = Identity.ProjectionPeriod - 1}).Value; ", + "\n}", + "\n", + "\n", + "\n", "\npublic interface TechnicalMarginForBOP : TechnicalMargin", "\n{", "\n private double ValueCsm => GetStorage().GetValue(Identity, null, EstimateTypes.C, null, Identity.ProjectionPeriod);", @@ -315,6 +322,11 @@ "\n GetScope((Identity with {AocType = AocTypes.CF, Novelty = Novelties.N}, at, EstimateTypes.BE, (int?)null), o => o.WithContext(EconomicBasis)).Value ) +", "\n GetScope((Identity with {AocType = AocTypes.CF, Novelty = Novelties.I}, (string)null, EstimateTypes.RA, (int?)null), o => o.WithContext(EconomicBasis)).Value +", "\n GetScope((Identity with {AocType = AocTypes.CF, Novelty = Novelties.N}, (string)null, EstimateTypes.RA, (int?)null), o => o.WithContext(EconomicBasis)).Value;", + "\n}", + "\n", + "\npublic interface TechnicalMarginForEop : TechnicalMargin{", + "\n double TechnicalMargin.Value => GetScope((Identity, InputSource.Cashflow)).Values", + "\n .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", "\n}" ], "metadata": {}, @@ -324,7 +336,7 @@ { "cell_type": "markdown", "source": [ - "# Switch Logic", + "# Techical Margin allocation for Gross", "\n ", "\nThe $CSM$ and $LC$ components are computed from the [technical margin](#technical-margin). In particular, for a given AoC step $s$, TM is allocated to the $LC$ when $\\text{Aggregated } TM$ is positive whereas it is allocated to the $CSM$ when $\\text{Aggregated } TM$ is negative:", "\n", @@ -340,9 +352,7 @@ "\nThe figures reported under CSM are the opposite of the TM value in order to satisfy our sign convention.", "\n", "\nIt is possible to switch from $CSM$ to $LC$ and from $LC$ to $CSM$ at any AoC step $s$ with the only exception of **Amortization** where there is no switch from the previous step.", - "\nWhen a switch occurs the total contribution to the $CSM$ ($LC$) prior the switching step is brought to 0 and the remaing amount is allocated to $LC$ ($CSM$).", - "\n", - "\n" + "\nWhen a switch occurs the total contribution to the $CSM$ ($LC$) prior the switching step is brought to 0 and the remaing amount is allocated to $LC$ ($CSM$)." ], "metadata": {}, "execution_count": 0, @@ -351,8 +361,7 @@ { "cell_type": "markdown", "source": [ - "", - "\n## Gross case", + "## Switch Logic", "\n", "\nThe switch logic is applied ***separately*** to the In-Force and New Business novelties. The Combined Liability AoC Step **CL** will bring both contributions to CSM and LC together as the novelities are summed up.", "\n", @@ -488,7 +497,6 @@ "\n [NotVisible] string ComputedEstimateType => ComputeEstimateType(GetScope(Identity).AggregatedValue + TechnicalMargin);", "\n [NotVisible] bool HasSwitch => ComputedEstimateType != ComputeEstimateType(GetScope(Identity).AggregatedValue);", "\n ", - "\n //Allocate", "\n [NotVisible] string EstimateType => GetContext();", "\n ", "\n double Value => (HasSwitch, EstimateType == ComputedEstimateType) switch {", @@ -544,9 +552,9 @@ { "cell_type": "markdown", "source": [ - "# Contractual Service Margin (Gross)", + "# Loss Component", "\n", - "\nThe scope below is simply used to set the appropriate Estimate Type C for $CSM$:" + "\nThe scope below is simply used to set the appropriate Estimate Type L for $LC$ :" ], "metadata": {}, "execution_count": 0, @@ -555,11 +563,11 @@ { "cell_type": "code", "source": [ - "public interface ContractualServiceMarginGross : IScope", + "public interface LossComponent : IScope", "\n{", - "\n [NotVisible]string EstimateType => EstimateTypes.C;", + "\n [NotVisible]string EstimateType => EstimateTypes.L;", "\n ", - "\n double Value => -1d * GetScope(Identity, o => o.WithContext(EstimateType)).Value;", + "\n double Value => GetScope(Identity, o => o.WithContext(EstimateType)).Value;", "\n}" ], "metadata": {}, @@ -569,23 +577,25 @@ { "cell_type": "markdown", "source": [ - "# Loss Component", + "# Technical Margin allocation for Reinsurance", "\n", - "\nThe scope below is simply used to set the appropriate Estimate Type L for $LC$ :" + "\nIn the case of Reinsurance a Loss Recovery Component is computed when the underlying gross business opens a Loss component. Loss Recovery Component uses the notion of Loss Recovery Component Boundary ([LoReCo Boundary](#loreco-boundary)). " ], "metadata": {}, "execution_count": 0, "outputs": [] }, { - "cell_type": "code", + "cell_type": "markdown", "source": [ - "public interface LossComponent : IScope", - "\n{", - "\n [NotVisible]string EstimateType => EstimateTypes.L;", - "\n ", - "\n double Value => GetScope(Identity, o => o.WithContext(EstimateType)).Value;", - "\n}" + "## Reinsurance ", + "\n", + "\nFor the **Group of Reinsurance Contracts** (GRICs), the switch is computed within the underlying GIC context and $CSM$ and $LR$ are then computed in a similar as for the underlying GICs CSM and LC. In the reinsurance case, the switch is controlled by the sign of the LoReCo Boundary rather than the reinsurance Technical Margin. This allows the reinsurance LoReCo allocation to be controlled by gross switch calculation. ", + "\nThe amount allocated to the Reinsurance CSM or LoReCo follows the computed Technical Margin computed for GRIC r as described in [Technical Margin](#technical-margin).", + "\n", + "\nFor the , the switch is computed within the underlying GIC context and $CSM$ and $LR$ are then computed in the same manner as for the underlying GICs CSM and LC.", + "\n", + "\nWithin the **Premium Allocation Approach** the LoReCo Component corresponds to the computed [LoReCo Boundary](loreco-boundary)." ], "metadata": {}, "execution_count": 0, @@ -594,24 +604,35 @@ { "cell_type": "markdown", "source": [ - "# Technical Margin allocation for Reinsurance", + "## Contractual Service Margin (Reinsurance)", "\n", - "\nIn the case of Reinsurance a Loss Recovery Component is computed when the underlying gross business opens a Loss component. Loss Recovery Component uses the notion of Loss Recovery Component Boundary ([LoReCo Boundary](#loreco-boundary)). " + "\nThe CSM of the group of reinsurance contracts is calculated with the technical margin of the GRIC. " ], "metadata": {}, "execution_count": 0, "outputs": [] }, { - "cell_type": "markdown", + "cell_type": "code", "source": [ - "## LoReCo Boundary", + "// public interface CsmReinsurance : IScope", + "\n// {", + "\n// static ApplicabilityBuilder ScopeApplicabilityBuilder(ApplicabilityBuilder builder) => ", + "\n// builder.ForScope(s => s", + "\n// .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.Identity.ProjectionPeriod > 0)", + "\n// .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", + "\n// );", + "\n// double Value => GetScope(Identity).Value;", + "\n// }", "\n", - "\nThe LoReCo Boundary is the underlying gross Loss Component multiplied by the weights coming from the Reinsurance Coverage (RC) Parameter (see [Data Node Parameters](../DataModel/DataStructure#data-node-parameters)). In case a GRIC ($r$) has multiple GICs ($g$), then the LoReCo Boundaries computed for each GIC-GRIC link are aggregated.", + "\n// public interface CsmReinsuranceForBopProjection: CsmReinsurance{", + "\n// double CsmReinsurance.Value => GetScope(Identity with {AocType = AocTypes.EOP, Novelty = Novelties.C, ProjectionPeriod = Identity.ProjectionPeriod - 1}).Value; ", + "\n// }", "\n", - "\n$$", - "\n\\text{LoReCo Boundary}(\\text{r}) = \\sum_{g~\\in~\\text{underlying GICs}} \\text{RC}_{g,r} \\text{LC}(g).", - "\n$$" + "\n// public interface CsmReinsuranceForEop : CsmReinsurance{", + "\n// double CsmReinsurance.Value => GetScope((Identity, InputSource.Cashflow)).Values", + "\n// .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", + "\n// }" ], "metadata": {}, "execution_count": 0, @@ -620,15 +641,9 @@ { "cell_type": "code", "source": [ - "public interface LoReCoBoundary : IScope", + "public interface CsmReinsurance : IScope", "\n{", - "\n private IEnumerable underlyingGic => GetStorage().GetUnderlyingGic(Identity, LiabilityTypes.LRC);", - "\n ", - "\n double Value => underlyingGic.Sum(gic => GetStorage().GetReinsuranceCoverage(Identity, gic) * GetScope(Identity with {DataNode = gic}).Value);", - "\n ", - "\n double AggregatedValue => underlyingGic.Sum(gic => GetStorage().GetReinsuranceCoverage(Identity, gic) * ", - "\n GetScope((Identity, InputSource.Cashflow)).Values", - "\n .Sum(aoc => GetScope(Identity with {DataNode = gic, AocType = aoc.AocType, Novelty = aoc.Novelty}).Value));", + "\n double Value => GetScope(Identity).Value;", "\n}" ], "metadata": {}, @@ -638,14 +653,28 @@ { "cell_type": "markdown", "source": [ - "## Reinsurance Switch Logic", + "# Contractual Service Margin", "\n", - "\nFor the **Group of Reinsurance Contracts** (GRICs), the switch is computed within the underlying GIC context and $CSM$ and $LR$ are then computed in a similar as for the underlying GICs CSM and LC. In the reinsurance case, the switch is controlled by the sign of the LoReCo Boundary rather than the reinsurance Technical Margin. This allows the reinsurance LoReCo allocation to be controlled by gross switch calculation. ", - "\nThe amount allocated to the Reinsurance CSM or LoReCo follows the computed Technical Margin computed for GRIC r as described in [Technical Margin](#technical-margin).", + "\nThe scope below is simply used to set the appropriate Estimate Type C for $CSM$ in both the Reinsurance and Gross case.", "\n", - "\nFor the , the switch is computed within the underlying GIC context and $CSM$ and $LR$ are then computed in the same manner as for the underlying GICs CSM and LC.", - "\n", - "\nWithin the **Premium Allocation Approach** the LoReCo Component corresponds to the computed [LoReCo Boundary](loreco-boundary)." + "\nThe calculation through [Allocation of techinical margin (gross case)]() is triggered for Group of Insurance Contracts and the calculation with [Contractual Service Margin(Reinsurance)](#contractual-service-margin-reinsurance) is triggered for Group of Reinsurance Contracts." + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "public interface ContractualServiceMargin : IScope", + "\n{", + "\n [NotVisible]string EstimateType => EstimateTypes.C;", + "\n ", + "\n double Value => Identity.IsReinsurance ", + "\n ? -1d * GetScope(Identity, o => o.WithContext(EstimateType)).Value", + "\n : -1d * GetScope(Identity, o => o.WithContext(EstimateType)).Value;", + "\n}", + "\n" ], "metadata": {}, "execution_count": 0, @@ -654,90 +683,49 @@ { "cell_type": "markdown", "source": [ - "## Contractual Service Margin (Reinsurance)" + "# Loss Recovery Component" ], "metadata": {}, "execution_count": 0, "outputs": [] }, { - "cell_type": "code", + "cell_type": "markdown", "source": [ - "public interface CsmReinsurance: AllocateTechnicalMargin", - "\n{", - "\n [NotVisible] string AllocateTechnicalMargin.EstimateType => EstimateTypes.C;", - "\n [NotVisible] string AllocateTechnicalMargin.ComputedEstimateType => EstimateType;", - "\n [NotVisible] bool AllocateTechnicalMargin.HasSwitch => false;", - "\n", - "\n //Switch", - "\n static ApplicabilityBuilder ScopeApplicabilityBuilder(ApplicabilityBuilder builder) => ", - "\n builder.ForScope(s => s", - "\n .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.Identity.ProjectionPeriod > 0)", - "\n .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", - "\n .WithApplicability(x => true, //from here the applicabilities of the AllocateTechnicalMargin are applied with the following members redefined here.", - "\n p => p.ForMember(s => s.ComputedEstimateType)", - "\n .ForMember(s => s.HasSwitch))", - "\n );", - "\n}", - "\n", - "\npublic interface AllocationForReinsurance : CsmReinsurance{", - "\n [NotVisible] string AllocateTechnicalMargin.ComputedEstimateType => EstimateType;", - "\n [NotVisible] bool AllocateTechnicalMargin.HasSwitch => false;", - "\n}", + "## LoReCo Boundary", "\n", - "\npublic interface AllocateTechnicalMarginForBopProjection: AllocateTechnicalMargin{", - "\n double AllocateTechnicalMargin.TechnicalMargin => GetScope(Identity with {AocType = AocTypes.EOP, Novelty = Novelties.C, ProjectionPeriod = Identity.ProjectionPeriod - 1}).Value; ", - "\n}", + "\nThe LoReCo Boundary is the underlying gross Loss Component multiplied by the weights coming from the Reinsurance Coverage (RC) Parameter (see [Data Node Parameters](../DataModel/DataStructure#data-node-parameters)). In case a GRIC ($r$) has multiple GICs ($g$), then the LoReCo Boundaries computed for each GIC-GRIC link are aggregated.", "\n", - "\npublic interface CsmReinsuranceForEop : CsmReinsurance{", - "\n double AllocateTechnicalMargin.Value => GetScope((Identity, InputSource.Cashflow)).Values", - "\n .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", - "\n}" + "\n$$", + "\n\\text{LoReCo Boundary}(\\text{r}) = \\sum_{g~\\in~\\text{underlying GICs}} \\text{RC}_{g,r} \\text{LC}(g).", + "\n$$" ], "metadata": {}, "execution_count": 0, "outputs": [] }, { - "cell_type": "markdown", + "cell_type": "code", "source": [ - "## Loss Recovery Component" + "public interface LoReCoBoundary : IScope", + "\n{", + "\n private IEnumerable underlyingGic => GetStorage().GetUnderlyingGic(Identity, LiabilityTypes.LRC);", + "\n ", + "\n double Value => underlyingGic.Sum(gic => GetStorage().GetReinsuranceCoverage(Identity, gic) * GetScope(Identity with {DataNode = gic}).Value);", + "\n ", + "\n double AggregatedValue => underlyingGic.Sum(gic => GetStorage().GetReinsuranceCoverage(Identity, gic) * ", + "\n GetScope((Identity, InputSource.Cashflow)).Values", + "\n .Sum(aoc => GetScope(Identity with {DataNode = gic, AocType = aoc.AocType, Novelty = aoc.Novelty}).Value));", + "\n}" ], "metadata": {}, "execution_count": 0, "outputs": [] }, { - "cell_type": "code", + "cell_type": "markdown", "source": [ - "// public interface LorecoCalculation : IScope", - "\n// { ", - "\n// //Switch", - "\n// static ApplicabilityBuilder ScopeApplicabilityBuilder(ApplicabilityBuilder builder) => ", - "\n// builder.ForScope(s => s", - "\n// .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.Identity.ProjectionPeriod > 0)", - "\n// .WithApplicability(x => x.Identity.ValuationApproach == ValuationApproaches.PAA)", - "\n// .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", - "\n// );", - "\n", - "\n// protected double loReCoBoundaryValue => GetScope(Identity).Value;", - "\n// protected double aggregatedLoReCoBoundary => GetScope(Identity).AggregatedValue;", - "\n", - "\n// double Value => -1d * loReCoBoundaryValue; // Fix Loreco", - "\n// }", - "\n", - "\n// public interface LorecoCalculationForBopProjection: LorecoCalculation{", - "\n// double LorecoCalculation.Value => GetScope(Identity with {AocType = AocTypes.EOP, Novelty = Novelties.C, ProjectionPeriod = Identity.ProjectionPeriod - 1}).Value;", - "\n// }", - "\n", - "\n// public interface LorecoCalculationPaa : LorecoCalculation{", - "\n// double LorecoCalculation.Value => -1d * loReCoBoundaryValue;", - "\n// }", - "\n", - "\n// public interface LorecoCalculationForEop : LorecoCalculation{", - "\n// double LorecoCalculation.Value => GetScope((Identity, InputSource.Cashflow)).Values", - "\n// .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", - "\n// }" + "## LoReCo calculation" ], "metadata": {}, "execution_count": 0, @@ -746,115 +734,63 @@ { "cell_type": "code", "source": [ - "public interface LorecoCalculation : IScope", + "public interface LossRecoveryComponent : IScope", "\n{ ", - "\n //Switch", "\n static ApplicabilityBuilder ScopeApplicabilityBuilder(ApplicabilityBuilder builder) => ", - "\n builder.ForScope(s => s", - "\n .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.Identity.ProjectionPeriod > 0)", - "\n .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.GetStorage().IsInceptionYear(x.Identity.DataNode))", - "\n .WithApplicability(x => x.Identity.ValuationApproach == ValuationApproaches.PAA || x.Identity.AocType == AocTypes.BOP)", - "\n .WithApplicability(x => x.Identity.AocType == AocTypes.CL)", - "\n .WithApplicability(x => x.Identity.AocType == AocTypes.AM)", - "\n .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", + "\n builder.ForScope(s => s", + "\n .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.Identity.ProjectionPeriod > 0)", + "\n .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.GetStorage().IsInceptionYear(x.Identity.DataNode))", + "\n .WithApplicability(x => x.Identity.ValuationApproach == ValuationApproaches.PAA || x.Identity.AocType == AocTypes.BOP)", + "\n .WithApplicability(x => x.Identity.AocType == AocTypes.AM)", + "\n .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", "\n );", "\n", "\n protected double loReCoBoundaryValue => GetScope(Identity).Value;", - "\n protected double aggregatedLoReCoBoundary => GetScope(Identity).AggregatedValue;", + "\n private double aggregatedLoReCoBoundary => GetScope(Identity).AggregatedValue;", "\n private double reinsuranceCsm => GetScope(Identity).Value;", + "\n private double aggregatedLoReCoProjectionWithFm => AggregatedValue + reinsuranceCsm; ", + "\n private bool isAboveUpperBoundary => aggregatedLoReCoProjectionWithFm > Precision;", + "\n private bool isBelowLowerBoundary => aggregatedLoReCoProjectionWithFm < -1d * (aggregatedLoReCoBoundary + loReCoBoundaryValue);", + "\n private double marginToLowerBoundary => -1d * (AggregatedValue + aggregatedLoReCoBoundary + loReCoBoundaryValue);", + "\n ", + "\n protected double AggregatedValue => GetScope((Identity, InputSource.Cashflow)).Values", + "\n .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", + "\n", + "\n double Value => (isAboveUpperBoundary, isBelowLowerBoundary) switch {", + "\n (false , false) => reinsuranceCsm,", + "\n (false , true) => marginToLowerBoundary,", + "\n (true , false) => -1d * AggregatedValue,", + "\n _ => default", + "\n };", "\n", - "\n double Value => -1d * Math.Min(loReCoBoundaryValue + aggregatedLoReCoBoundary + AggregatedValue, Math.Max(AggregatedValue, -1d * reinsuranceCsm));", - "\n", - "\n double AggregatedValue => GetScope((Identity, InputSource.Cashflow)).Values", - "\n .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", + "\n [NotVisible]string EstimateType => EstimateTypes.LR;", "\n}", "\n", - "\npublic interface LorecoCalculationForBopProjection: LorecoCalculation{", - "\n double LorecoCalculation.Value => GetScope(Identity with {AocType = AocTypes.EOP, Novelty = Novelties.C, ProjectionPeriod = Identity.ProjectionPeriod - 1}).Value;", + "\npublic interface LossRecoveryComponentForBopProjection: LossRecoveryComponent{", + "\n double LossRecoveryComponent.Value => GetScope(Identity with {AocType = AocTypes.EOP, Novelty = Novelties.C, ProjectionPeriod = Identity.ProjectionPeriod - 1}).Value;", "\n}", "\n", - "\npublic interface LorecoCalculationForBop : LorecoCalculation{", - "\n double LorecoCalculation.Value => -1d * GetStorage().GetValue(Identity, null, EstimateTypes.LR, null, Identity.ProjectionPeriod);", + "\npublic interface LossRecoveryComponentForBop : LossRecoveryComponent{", + "\n double LossRecoveryComponent.Value => -1d * GetStorage().GetValue(Identity, null, EstimateTypes.LR, null, Identity.ProjectionPeriod);", "\n }", "\n", - "\npublic interface LorecoCalculationPaa : LorecoCalculation{", - "\n double LorecoCalculation.Value => -1d * loReCoBoundaryValue;", + "\npublic interface LossRecoveryComponentPaa : LossRecoveryComponent{", + "\n double LossRecoveryComponent.Value => -1d * loReCoBoundaryValue;", "\n}", "\n", - "\npublic interface LorecoCalculationForCl : LorecoCalculation{", - "\n double LorecoCalculation.Value => (loReCoBoundaryValue + aggregatedLoReCoBoundary) switch {", - "\n > Precision => default,", - "\n _ => -1d * GetScope((Identity, InputSource.Cashflow)).Values", - "\n .GroupBy(x => x.Novelty, (k, v) => v.Last())", - "\n .Sum(aoc => { ", - "\n var id = Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty};", - "\n var scope = GetScope(id);", - "\n return scope.AggregatedValue + scope.Value;})", - "\n };", - "\n}", - "\n", - "\npublic interface LorecoCalculationForAm : LorecoCalculation{", + "\npublic interface LossRecoveryComponentForAm : LossRecoveryComponent{", "\n private string economicBasis => GetScope(Identity).EconomicBasis;", - "\n double LorecoCalculation.Value => -1d * AggregatedValue * GetScope((Identity, AmountTypes.CU, 0), o => o.WithContext(economicBasis)).Value;", + "\n double LossRecoveryComponent.Value => -1d * AggregatedValue * GetScope((Identity, AmountTypes.CU, 0), o => o.WithContext(economicBasis)).Value;", "\n}", "\n", - "\npublic interface LorecoCalculationForEop : LorecoCalculation{", - "\n double LorecoCalculation.Value => GetScope((Identity, InputSource.Cashflow)).Values", - "\n .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", + "\npublic interface LossRecoveryComponentForEop : LossRecoveryComponent{", + "\n double LossRecoveryComponent.Value => GetScope((Identity, InputSource.Cashflow)).Values", + "\n .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", "\n}" ], "metadata": {}, "execution_count": 0, "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "# Loss Recovery Component" - ], - "metadata": {}, - "execution_count": 0, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "public interface LossRecoveryComponent : IScope", - "\n{", - "\n [NotVisible]string EstimateType => EstimateTypes.LR;", - "\n ", - "\n double Value => GetScope(Identity).Value;", - "\n}" - ], - "metadata": {}, - "execution_count": 0, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "# Contractual Service Margin" - ], - "metadata": {}, - "execution_count": 0, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "public interface ContractualServiceMargin : IScope", - "\n{", - "\n [NotVisible]string EstimateType => EstimateTypes.C;", - "\n ", - "\n double Value => Identity.IsReinsurance ", - "\n ? -1d * GetScope(Identity, o => o.WithContext(EstimateType)).Value", - "\n : GetScope(Identity, o => o.WithContext(EstimateType)).Value;", - "\n}", - "\n" - ], - "metadata": {}, - "execution_count": 0, - "outputs": [] } ] } \ No newline at end of file From 0da9b0d658508933ff8ec837df2832244b8daa99 Mon Sep 17 00:00:00 2001 From: Davide Colleoni Date: Wed, 28 Jun 2023 17:34:34 +0200 Subject: [PATCH 15/24] scopes clean up 2 --- .../Import/4ImportScope-TechnicalMargin.ipynb | 119 ++++-------------- ifrs17/OverviewCalculationEngine.ipynb | 5 +- 2 files changed, 29 insertions(+), 95 deletions(-) diff --git a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb index 1ef1ac19..4b49916d 100644 --- a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb +++ b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb @@ -234,6 +234,7 @@ "\n .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", "\n );", "\n ", + "\n private string estimateType => GetContext();//Distinguish between C and LR for filtering the AmountType from PV", "\n [NotVisible] string EconomicBasis => EconomicBases.L;", "\n ", "\n double Value => GetScope(Identity.DataNode).BeAmountTypes", @@ -552,9 +553,11 @@ { "cell_type": "markdown", "source": [ - "# Loss Component", + "# Contractual Service Margin", "\n", - "\nThe scope below is simply used to set the appropriate Estimate Type L for $LC$ :" + "\nThe scope below is simply used to set the appropriate Estimate Type C for $CSM$ in both the Reinsurance and Gross case.", + "\n", + "\nThe calculation through [Allocation of techinical margin (gross case)]() is triggered for Group of Insurance Contracts and the calculation with [Technical Margin](#technical-margin) is triggered for Group of Reinsurance Contracts." ], "metadata": {}, "execution_count": 0, @@ -563,11 +566,13 @@ { "cell_type": "code", "source": [ - "public interface LossComponent : IScope", + "public interface ContractualServiceMargin : IScope", "\n{", - "\n [NotVisible]string EstimateType => EstimateTypes.L;", - "\n ", - "\n double Value => GetScope(Identity, o => o.WithContext(EstimateType)).Value;", + "\n [NotVisible]string EstimateType => EstimateTypes.C;", + "\n ", + "\n double Value => Identity.IsReinsurance ", + "\n ? -1d * GetScope(Identity, o => o.WithContext(EstimateType)).Value", + "\n : -1d * GetScope(Identity, o => o.WithContext(EstimateType)).Value;", "\n}" ], "metadata": {}, @@ -577,62 +582,9 @@ { "cell_type": "markdown", "source": [ - "# Technical Margin allocation for Reinsurance", - "\n", - "\nIn the case of Reinsurance a Loss Recovery Component is computed when the underlying gross business opens a Loss component. Loss Recovery Component uses the notion of Loss Recovery Component Boundary ([LoReCo Boundary](#loreco-boundary)). " - ], - "metadata": {}, - "execution_count": 0, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Reinsurance ", - "\n", - "\nFor the **Group of Reinsurance Contracts** (GRICs), the switch is computed within the underlying GIC context and $CSM$ and $LR$ are then computed in a similar as for the underlying GICs CSM and LC. In the reinsurance case, the switch is controlled by the sign of the LoReCo Boundary rather than the reinsurance Technical Margin. This allows the reinsurance LoReCo allocation to be controlled by gross switch calculation. ", - "\nThe amount allocated to the Reinsurance CSM or LoReCo follows the computed Technical Margin computed for GRIC r as described in [Technical Margin](#technical-margin).", - "\n", - "\nFor the , the switch is computed within the underlying GIC context and $CSM$ and $LR$ are then computed in the same manner as for the underlying GICs CSM and LC.", - "\n", - "\nWithin the **Premium Allocation Approach** the LoReCo Component corresponds to the computed [LoReCo Boundary](loreco-boundary)." - ], - "metadata": {}, - "execution_count": 0, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "## Contractual Service Margin (Reinsurance)", + "# Loss Component", "\n", - "\nThe CSM of the group of reinsurance contracts is calculated with the technical margin of the GRIC. " - ], - "metadata": {}, - "execution_count": 0, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "// public interface CsmReinsurance : IScope", - "\n// {", - "\n// static ApplicabilityBuilder ScopeApplicabilityBuilder(ApplicabilityBuilder builder) => ", - "\n// builder.ForScope(s => s", - "\n// .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.Identity.ProjectionPeriod > 0)", - "\n// .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", - "\n// );", - "\n// double Value => GetScope(Identity).Value;", - "\n// }", - "\n", - "\n// public interface CsmReinsuranceForBopProjection: CsmReinsurance{", - "\n// double CsmReinsurance.Value => GetScope(Identity with {AocType = AocTypes.EOP, Novelty = Novelties.C, ProjectionPeriod = Identity.ProjectionPeriod - 1}).Value; ", - "\n// }", - "\n", - "\n// public interface CsmReinsuranceForEop : CsmReinsurance{", - "\n// double CsmReinsurance.Value => GetScope((Identity, InputSource.Cashflow)).Values", - "\n// .Sum(aoc => GetScope(Identity with {AocType = aoc.AocType, Novelty = aoc.Novelty}).Value);", - "\n// }" + "\nThe scope below is simply used to set the appropriate Estimate Type L for $LC$ :" ], "metadata": {}, "execution_count": 0, @@ -641,9 +593,11 @@ { "cell_type": "code", "source": [ - "public interface CsmReinsurance : IScope", + "public interface LossComponent : IScope", "\n{", - "\n double Value => GetScope(Identity).Value;", + "\n [NotVisible]string EstimateType => EstimateTypes.L;", + "\n ", + "\n double Value => GetScope(Identity, o => o.WithContext(EstimateType)).Value;", "\n}" ], "metadata": {}, @@ -653,37 +607,16 @@ { "cell_type": "markdown", "source": [ - "# Contractual Service Margin", + "# Loss Recovery Component", "\n", - "\nThe scope below is simply used to set the appropriate Estimate Type C for $CSM$ in both the Reinsurance and Gross case.", + "\nIn the case of Reinsurance a Loss Recovery Component is computed when the underlying gross business opens a Loss component. Loss Recovery Component uses the notion of Loss Recovery Component Boundary ([LoReCo Boundary](#loreco-boundary)). ", "\n", - "\nThe calculation through [Allocation of techinical margin (gross case)]() is triggered for Group of Insurance Contracts and the calculation with [Contractual Service Margin(Reinsurance)](#contractual-service-margin-reinsurance) is triggered for Group of Reinsurance Contracts." - ], - "metadata": {}, - "execution_count": 0, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "public interface ContractualServiceMargin : IScope", - "\n{", - "\n [NotVisible]string EstimateType => EstimateTypes.C;", - "\n ", - "\n double Value => Identity.IsReinsurance ", - "\n ? -1d * GetScope(Identity, o => o.WithContext(EstimateType)).Value", - "\n : -1d * GetScope(Identity, o => o.WithContext(EstimateType)).Value;", - "\n}", - "\n" - ], - "metadata": {}, - "execution_count": 0, - "outputs": [] - }, - { - "cell_type": "markdown", - "source": [ - "# Loss Recovery Component" + "\nFor the **Group of Reinsurance Contracts** (GRICs), the switch is computed within the underlying GIC context and $CSM$ and $LR$ are then computed in a similar as for the underlying GICs CSM and LC. In the reinsurance case, the switch is controlled by the sign of the LoReCo Boundary rather than the reinsurance Technical Margin. This allows the reinsurance LoReCo allocation to be controlled by gross switch calculation. ", + "\nThe amount allocated to the Reinsurance CSM or LoReCo follows the computed Technical Margin computed for GRIC r as described in [Technical Margin](#technical-margin).", + "\n", + "\nFor the , the switch is computed within the underlying GIC context and $CSM$ and $LR$ are then computed in the same manner as for the underlying GICs CSM and LC.", + "\n", + "\nWithin the **Premium Allocation Approach** the LoReCo Component corresponds to the computed [LoReCo Boundary](loreco-boundary)." ], "metadata": {}, "execution_count": 0, @@ -747,7 +680,7 @@ "\n", "\n protected double loReCoBoundaryValue => GetScope(Identity).Value;", "\n private double aggregatedLoReCoBoundary => GetScope(Identity).AggregatedValue;", - "\n private double reinsuranceCsm => GetScope(Identity).Value;", + "\n private double reinsuranceCsm => GetScope(Identity, o => o.WithContext(EstimateType)).Value;", "\n private double aggregatedLoReCoProjectionWithFm => AggregatedValue + reinsuranceCsm; ", "\n private bool isAboveUpperBoundary => aggregatedLoReCoProjectionWithFm > Precision;", "\n private bool isBelowLowerBoundary => aggregatedLoReCoProjectionWithFm < -1d * (aggregatedLoReCoBoundary + loReCoBoundaryValue);", diff --git a/ifrs17/OverviewCalculationEngine.ipynb b/ifrs17/OverviewCalculationEngine.ipynb index 01d19248..870208b4 100644 --- a/ifrs17/OverviewCalculationEngine.ipynb +++ b/ifrs17/OverviewCalculationEngine.ipynb @@ -168,9 +168,10 @@ "\n", "\n$$", "\n$$", - "\n- **[Contractual Service Margin (CSM), Loss Component LC) and Loss Recovery Component (LoReCo)](./Import/4ImportScope-TechnicalMargin)**, modeling the treatment of unearned profits (CSM) and losses (LC, LRC) as required by the IFRS 17 standard, per GIC or GRIC:", + "\n- **[Contractual Service Margin (CSM), Loss Component LC) and Loss Recovery Component (LoReCo)](./Import/4ImportScope-TechnicalMargin)**, modeling the treatment of unearned profits (CSM) and losses (LC, LoReCo) as required by the IFRS 17 standard, per GIC or GRIC:", "\n - [Technical Margin](./Import/4ImportScope-TechnicalMargin#technical-margin), which is the sum of best estimate and risk adjustment PV with special rules for different AoC steps including the Amortization step, also using and calculating the Interest Accretion Factor, Premiums, Deferrals and Investment Claims", - "\n - [Switch Logic for CSM and LC](./Import/4ImportScope-TechnicalMargin#switch-logic), switching between CSM and LC for a given AoC step in the AoC period; one of the two is always zero depending on the sign of the Technical Margin; distinguishing the [gross case](./Import/4ImportScope-TechnicalMargin#gross-case) (no reinsurance) from the [reinsurance case](./Import/4ImportScope-TechnicalMargin#technical-margin-allocation-for-reinsurance) which applies reinsurance coverage weights" + "\n - [Switch Logic for CSM and LC](./Import/4ImportScope-TechnicalMargin#switch-logic), switching between CSM and LC for a given AoC step in the AoC period; one of the two is always zero depending on the sign of the Technical Margin; ", + "\n - [LoReCo Boundary](./Import/4ImportScope-TechnicalMargin#loreco-boundary) used in the calculation of the LoReCo." ], "metadata": {}, "execution_count": 0, From 153dcd9fbd2eb410443ea2b4cf930da8c5ccf30c Mon Sep 17 00:00:00 2001 From: Davide Colleoni Date: Thu, 29 Jun 2023 10:53:22 +0200 Subject: [PATCH 16/24] conflict resolution --- ifrs17/Import/Importers.ipynb | 8 -------- 1 file changed, 8 deletions(-) diff --git a/ifrs17/Import/Importers.ipynb b/ifrs17/Import/Importers.ipynb index b6524863..5f4da2cc 100644 --- a/ifrs17/Import/Importers.ipynb +++ b/ifrs17/Import/Importers.ipynb @@ -1450,14 +1450,6 @@ "\n values = values.Prune();", "\n if(values.Length == 0 && !parsingStorage.MandatoryAocSteps.Contains(new AocStep(aocType, novelty))) return null;", "\n }", - "\n", - "\n int? accidentYear = default;", - "\n if(hasAccidentYearColumn && datarow.Field(nameof(RawVariable.AccidentYear)) != null) {", - "\n if(!Int32.TryParse(datarow.Field(nameof(RawVariable.AccidentYear)), out var parsedAccidentYear)) { ", - "\n ApplicationMessage.Log(Error.AccidentYearTypeNotValid, datarow.Field(nameof(RawVariable.AccidentYear))); return null;", - "\n }", - "\n else accidentYear = (int?)parsedAccidentYear;", - "\n }", "\n ", "\n var item = new RawVariable {", "\n DataNode = dataNode,", From ba0b7b36a1f5dc20f479b8f1cc87fc85e72f3e58 Mon Sep 17 00:00:00 2001 From: Davide Colleoni Date: Thu, 29 Jun 2023 10:54:10 +0200 Subject: [PATCH 17/24] benchmarks --- .../BM_CH_2021_3__C.csv | 18 +++++-- .../BM_CH_2021_3__LR.csv | 16 +++--- ...iableBenchmarks_2021_3_CH__Contractual.csv | 54 ++++++++++--------- 3 files changed, 50 insertions(+), 38 deletions(-) diff --git a/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__C.csv b/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__C.csv index 5ae3fa58..6499a927 100644 --- a/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__C.csv +++ b/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__C.csv @@ -53,26 +53,34 @@ AccidentYear,AmountType,AocType,DataNode,EconomicBasis,EstimateType,Novelty,Valu ,,EV,DT4.1,,C,N,-1.49226 ,,IA,DT4.1,,C,N,0.00034 ,,AM,DTR1.1,,C,C,10.75385 -,,CL,DTR1.1,,C,C,43.71271 ,,EOP,DTR1.1,,C,C,-22.59217 ,,BOP,DTR1.1,,C,I,-24.07616 ,,IA,DTR1.1,,C,I,-0.03848 ,,MC,DTR1.1,,C,I,-52.94408 +,,BOP,DTR1.1,,C,N,15.97745 +,,EV,DTR1.1,,C,N,27.72711 +,,IA,DTR1.1,,C,N,0.00815 ,,AM,DTR1.3,,C,C,10.75385 -,,CL,DTR1.3,,C,C,43.71271 ,,EOP,DTR1.3,,C,C,-22.59217 ,,BOP,DTR1.3,,C,I,-24.07616 ,,IA,DTR1.3,,C,I,-0.03848 ,,MC,DTR1.3,,C,I,-52.94408 +,,BOP,DTR1.3,,C,N,15.97745 +,,EV,DTR1.3,,C,N,27.72711 +,,IA,DTR1.3,,C,N,0.00815 ,,AM,DTR1.4,,C,C,10.75385 -,,CL,DTR1.4,,C,C,43.71271 ,,EOP,DTR1.4,,C,C,-22.59217 ,,BOP,DTR1.4,,C,I,-24.07616 ,,IA,DTR1.4,,C,I,-0.03848 ,,MC,DTR1.4,,C,I,-52.94408 +,,BOP,DTR1.4,,C,N,15.97745 +,,EV,DTR1.4,,C,N,27.72711 +,,IA,DTR1.4,,C,N,0.00815 ,,AM,DTR2.1,,C,C,10.75385 -,,CL,DTR2.1,,C,C,43.71271 ,,EOP,DTR2.1,,C,C,-22.59217 ,,BOP,DTR2.1,,C,I,-24.07616 ,,IA,DTR2.1,,C,I,-0.03848 -,,MC,DTR2.1,,C,I,-52.94408 \ No newline at end of file +,,MC,DTR2.1,,C,I,-52.94408 +,,BOP,DTR2.1,,C,N,15.97745 +,,EV,DTR2.1,,C,N,27.72711 +,,IA,DTR2.1,,C,N,0.00815 \ No newline at end of file diff --git a/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__LR.csv b/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__LR.csv index 8e0da436..41415c4c 100644 --- a/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__LR.csv +++ b/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__LR.csv @@ -3,19 +3,19 @@ Month,ReportingNode,Scenario,Year 3,CH,,2021 @@LR AccidentYear,AmountType,AocType,DataNode,EconomicBasis,EstimateType,Novelty,Values0 -,,CL,DTR1.1,,LR,C,43.71271 -,,BOP,DTR1.1,,LR,N,-15.97745 +,,CL,DTR1.1,,LR,C,43.71463 +,,BOP,DTR1.1,,LR,N,-15.97937 ,,EV,DTR1.1,,LR,N,-27.72711 ,,IA,DTR1.1,,LR,N,-0.00815 -,,CL,DTR1.3,,LR,C,43.71271 -,,BOP,DTR1.3,,LR,N,-15.97745 +,,CL,DTR1.3,,LR,C,43.71463 +,,BOP,DTR1.3,,LR,N,-15.97937 ,,EV,DTR1.3,,LR,N,-27.72711 ,,IA,DTR1.3,,LR,N,-0.00815 -,,CL,DTR1.4,,LR,C,43.71271 -,,BOP,DTR1.4,,LR,N,-15.97745 +,,CL,DTR1.4,,LR,C,43.71463 +,,BOP,DTR1.4,,LR,N,-15.97937 ,,EV,DTR1.4,,LR,N,-27.72711 ,,IA,DTR1.4,,LR,N,-0.00815 -,,CL,DTR2.1,,LR,C,43.71271 -,,BOP,DTR2.1,,LR,N,-15.97745 +,,CL,DTR2.1,,LR,C,43.71463 +,,BOP,DTR2.1,,LR,N,-15.97937 ,,EV,DTR2.1,,LR,N,-27.72711 ,,IA,DTR2.1,,LR,N,-0.00815 \ No newline at end of file diff --git a/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2021_3_CH__Contractual.csv b/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2021_3_CH__Contractual.csv index 068df85b..cbb80aaf 100644 --- a/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2021_3_CH__Contractual.csv +++ b/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2021_3_CH__Contractual.csv @@ -332,7 +332,7 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,,2020,USD,USD,,L,CHF,DT1.1,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,0.0163,IA 0,,2020,USD,USD,,L,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0.0163,IFIE1 0,,2020,USD,USD,,L,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0.0163,IR5 -0,,2020,USD,USD,,L,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0,ISE11 +0,,2020,USD,USD,,L,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0,ISE11 0,,2020,USD,USD,C,RA,CHF,DT1.1,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,29.96755,BOP 0,,2020,USD,USD,C,RA,CHF,DT1.1,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,11.96764,BOP 0,,2020,USD,USD,C,RA,CHF,DT1.1,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,-6,CF @@ -1203,20 +1203,21 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.4318,OCI1 0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,10.75385,AM 0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-24.07616,BOP -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.71271,CL +0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,15.97745,BOP 0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-22.59217,EOP +0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,27.72711,EV 0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.03848,IA -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.03848,IFIE1 -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,9.23138,ISE10 +0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.00815,IA +0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.03033,IFIE1 +0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,9.23953,ISE10 0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-10.75385,ISE7 0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-52.94408,MC -0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-15.97745,BOP -0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.71271,CL +0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-15.97937,BOP +0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.71463,CL 0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP 0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.72711,EV 0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00815,IA 0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00815,IFIE1 -0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.00815,ISE10 0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0,ISE11 0,,2020,USD,USD,C,RA,CHF,DTR1.1,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-14.98378,BOP 0,,2020,USD,USD,C,RA,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-5.98382,BOP @@ -1323,20 +1324,21 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.4318,OCI1 0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,10.75385,AM 0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-24.07616,BOP -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.71271,CL +0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,15.97745,BOP 0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-22.59217,EOP +0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,27.72711,EV 0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.03848,IA -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.03848,IFIE1 -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,9.23138,ISE10 +0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.00815,IA +0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.03033,IFIE1 +0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,9.23953,ISE10 0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-10.75385,ISE7 0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-52.94408,MC -0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-15.97745,BOP -0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.71271,CL +0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-15.97937,BOP +0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.71463,CL 0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP 0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.72711,EV 0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00815,IA 0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00815,IFIE1 -0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.00815,ISE10 0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0,ISE11 0,NIC,2020,USD,USD,,OA,CHF,DTR1.3,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-2.5,BOP 0,NIC,2020,USD,USD,,OA,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP @@ -1442,20 +1444,21 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.4318,OCI1 0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,10.75385,AM 0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-24.07616,BOP -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.71271,CL +0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,15.97745,BOP 0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-22.59217,EOP +0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,27.72711,EV 0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.03848,IA -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.03848,IFIE1 -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,9.23138,ISE10 +0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.00815,IA +0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.03033,IFIE1 +0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,9.23953,ISE10 0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-10.75385,ISE7 0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-52.94408,MC -0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-15.97745,BOP -0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.71271,CL +0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-15.97937,BOP +0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.71463,CL 0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP 0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.72711,EV 0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00815,IA 0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00815,IFIE1 -0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.00815,ISE10 0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0,ISE11 0,NIC,2020,USD,USD,,OA,CHF,DTR1.4,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-10,BOP 0,NIC,2020,USD,USD,,OA,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP @@ -1555,20 +1558,21 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,19.9817,MC 0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,10.75385,AM 0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-24.07616,BOP -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,43.71271,CL +0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,15.97745,BOP 0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-22.59217,EOP +0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,27.72711,EV 0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-0.03848,IA -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,0.03848,IFIE1 -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,9.23138,ISE10 +0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,0.00815,IA +0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,0.03033,IFIE1 +0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,9.23953,ISE10 0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-10.75385,ISE7 0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-52.94408,MC -0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-15.97745,BOP -0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,43.71271,CL +0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-15.97937,BOP +0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,43.71463,CL 0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,0,EOP 0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-27.72711,EV 0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-0.00815,IA 0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-0.00815,IFIE1 -0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,0.00815,ISE10 0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-0,ISE11 0,,2020,USD,USD,C,RA,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-14.98378,BOP 0,,2020,USD,USD,C,RA,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-5.98382,BOP From 55b2a86b459b6b6c4e11f946ae9445541a3bb8e6 Mon Sep 17 00:00:00 2001 From: Davide Colleoni Date: Thu, 29 Jun 2023 10:54:44 +0200 Subject: [PATCH 18/24] documentation and one fix --- .../Import/4ImportScope-TechnicalMargin.ipynb | 55 +++++++++++++++---- 1 file changed, 43 insertions(+), 12 deletions(-) diff --git a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb index e6a3d13f..ddca2eab 100644 --- a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb +++ b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb @@ -619,14 +619,12 @@ "source": [ "# Loss Recovery Component", "\n", - "\nIn the case of Reinsurance a Loss Recovery Component is computed when the underlying gross business opens a Loss component. Loss Recovery Component uses the notion of Loss Recovery Component Boundary ([LoReCo Boundary](#loreco-boundary)). ", + "\nIn the case of Reinsurance a Loss Recovery Component is computed when the underlying gross business opens a Loss component. ", + "\nBy definition the sign of the LoReCo aggregated along the AoC Chain must be negative, to ensure the recovery of the losses from the side of the Insurer. ", + "\nLoss Recovery Component uses the notion of Loss Recovery Component Boundary ([LoReCo Boundary](#loreco-boundary)). This quantity with the sign inverted defines the lower limit of the LoReCo. ", + "\nThe amount allocated to the Reinsurance LoReCo follows the computed Technical Margin computed for GRIC as described in [Technical Margin](#technical-margin).", "\n", - "\nFor the **Group of Reinsurance Contracts** (GRICs), the switch is computed within the underlying GIC context and $CSM$ and $LR$ are then computed in a similar as for the underlying GICs CSM and LC. In the reinsurance case, the switch is controlled by the sign of the LoReCo Boundary rather than the reinsurance Technical Margin. This allows the reinsurance LoReCo allocation to be controlled by gross switch calculation. ", - "\nThe amount allocated to the Reinsurance CSM or LoReCo follows the computed Technical Margin computed for GRIC r as described in [Technical Margin](#technical-margin).", - "\n", - "\nFor the , the switch is computed within the underlying GIC context and $CSM$ and $LR$ are then computed in the same manner as for the underlying GICs CSM and LC.", - "\n", - "\nWithin the **Premium Allocation Approach** the LoReCo Component corresponds to the computed [LoReCo Boundary](loreco-boundary)." + "\n" ], "metadata": {}, "execution_count": 0, @@ -640,8 +638,10 @@ "\nThe LoReCo Boundary is the underlying gross Loss Component multiplied by the weights coming from the Reinsurance Coverage (RC) Parameter (see [Data Node Parameters](../DataModel/DataStructure#data-node-parameters)). In case a GRIC ($r$) has multiple GICs ($g$), then the LoReCo Boundaries computed for each GIC-GRIC link are aggregated.", "\n", "\n$$", - "\n\\text{LoReCo Boundary}(\\text{r}) = \\sum_{g~\\in~\\text{underlying GICs}} \\text{RC}_{g,r} \\text{LC}(g).", - "\n$$" + "\nLoReCo Boundary(\\text{r}) = \\sum_{g~\\in~\\text{underlying GICs}} \\text{RC}_{g,r} \\text{LC}(g).", + "\n$$", + "\n", + "\nWithin the **Premium Allocation Approach** the LoReCo Component corresponds to the computed $$LoReCo Boundary$$." ], "metadata": {}, "execution_count": 0, @@ -668,7 +668,38 @@ { "cell_type": "markdown", "source": [ - "## LoReCo calculation" + "## LoReCo calculation", + "\n", + "\nThe LoReCo is computed through the allocation of the Reinsurance [Technical Margin](#technical-margin) forcing the aggregated LoReCo to be at each step within the boundaries. ", + "\nWhen for a given AoC Step (s), the allocation of the Technical Margin results in aggregated LoReCo exceeding the margins then a partial allocation of the Technical Margin is applied. This partial allocation allows the aggregated LoReCo to meeet the boundary without exceeding it. The calculation then continues with the following AoC Step. ", + "\nThe calcolation of LoReCo can be summarized by: ", + "\n", + "\n$$", + "\nLoReCo(s) = \\left\\{", + "\n\\begin{array}{rl}", + "\nTM(s) ~ & \\text{if Aggregated}~LoReCo(s-1) + TM(s) \\text{ falls within boundaries}.", + "\n\\\\", + "\n- \\text{Aggregated}~LoReCo(s-1) ~ & \\text{if Aggregated}~LoReCo(s-1) + TM(s) \\text{ exceeds upper boundary}.", + "\n\\\\", + "\n\\text{Margin to lower boundary}(s) ~ & \\text{if Aggregated}~LoReCo(s-1) + TM(s) \\text{ exceeds lower boundary}.", + "\n\\end{array}", + "\n\\right.", + "\n$$", + "\n", + "\nWhere $$\\text{Margin to lower boundary}(s)$$ is $$-\\text{Aggregated}~LoReCo(s-1) + \\text{Aggregated}~LoReCo Boundary(s)$$. ", + "\n", + "\nThe opening value of the in force novelty is taken from the closing balance of the previous year end closing. For the other novelties and for the first year of existance of the Group of Reinsurance Contracts it is taken from the [LoReCo Boundary](loreco-boundary) with the sign inverted.", + "\n", + "\nLoReCo Amortization is computed as: ", + "\n$$", + "\n-AF \\cdot~\\text{Aggregated}~LoReCo(\\text{AM}).", + "\n$$", + "\n", + "\nLoReCo End of Period is computed as: ", + "\n$$", + "\n\\text{Aggregated}~LoReCo(\\text{EoP}) = \\sum_{n~\\in\\text{ novelty}} \\sum_{AoC~\\in\\text{ AoC Types}} LoReCo(n,AoC) .", + "\n$$", + "\ncorresponding to the sum of all previous AoC Steps." ], "metadata": {}, "execution_count": 0, @@ -682,7 +713,7 @@ "\n static ApplicabilityBuilder ScopeApplicabilityBuilder(ApplicabilityBuilder builder) => ", "\n builder.ForScope(s => s", "\n .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.Identity.ProjectionPeriod > 0)", - "\n .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && x.GetStorage().IsInceptionYear(x.Identity.DataNode))", + "\n .WithApplicability(x => x.Identity.AocType == AocTypes.BOP && x.Identity.Novelty == Novelties.I && !x.GetStorage().IsInceptionYear(x.Identity.DataNode))", "\n .WithApplicability(x => x.Identity.ValuationApproach == ValuationApproaches.PAA || x.Identity.AocType == AocTypes.BOP)", "\n .WithApplicability(x => x.Identity.AocType == AocTypes.AM)", "\n .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", @@ -692,7 +723,7 @@ "\n private double aggregatedLoReCoBoundary => GetScope(Identity).AggregatedValue;", "\n private double reinsuranceCsm => GetScope(Identity, o => o.WithContext(EstimateType)).Value;", "\n private double aggregatedLoReCoProjectionWithFm => AggregatedValue + reinsuranceCsm; ", - "\n private bool isAboveUpperBoundary => aggregatedLoReCoProjectionWithFm > Precision;", + "\n private bool isAboveUpperBoundary => aggregatedLoReCoProjectionWithFm >= Precision;", "\n private bool isBelowLowerBoundary => aggregatedLoReCoProjectionWithFm < -1d * (aggregatedLoReCoBoundary + loReCoBoundaryValue);", "\n private double marginToLowerBoundary => -1d * (AggregatedValue + aggregatedLoReCoBoundary + loReCoBoundaryValue);", "\n ", From 5051b9cf0770f13a10319bf2726de8b27c6f484f Mon Sep 17 00:00:00 2001 From: Davide Colleoni Date: Fri, 30 Jun 2023 15:59:08 +0200 Subject: [PATCH 19/24] report scopes and fix bm --- ...rtVariableBenchmarks_2021_3_CH__Contractual.csv | 4 ---- .../PracticalCase-CompareReinsuranceTest.ipynb | 2 +- ifrs17/Report/ReportScopes.ipynb | 14 +++----------- 3 files changed, 4 insertions(+), 16 deletions(-) diff --git a/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2021_3_CH__Contractual.csv b/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2021_3_CH__Contractual.csv index cbb80aaf..ea5b4e5e 100644 --- a/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2021_3_CH__Contractual.csv +++ b/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2021_3_CH__Contractual.csv @@ -1217,7 +1217,6 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP 0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.72711,EV 0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00815,IA -0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00815,IFIE1 0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0,ISE11 0,,2020,USD,USD,C,RA,CHF,DTR1.1,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-14.98378,BOP 0,,2020,USD,USD,C,RA,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-5.98382,BOP @@ -1338,7 +1337,6 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP 0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.72711,EV 0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00815,IA -0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00815,IFIE1 0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0,ISE11 0,NIC,2020,USD,USD,,OA,CHF,DTR1.3,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-2.5,BOP 0,NIC,2020,USD,USD,,OA,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP @@ -1458,7 +1456,6 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP 0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.72711,EV 0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00815,IA -0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00815,IFIE1 0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0,ISE11 0,NIC,2020,USD,USD,,OA,CHF,DTR1.4,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-10,BOP 0,NIC,2020,USD,USD,,OA,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP @@ -1572,7 +1569,6 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,0,EOP 0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-27.72711,EV 0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-0.00815,IA -0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-0.00815,IFIE1 0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-0,ISE11 0,,2020,USD,USD,C,RA,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-14.98378,BOP 0,,2020,USD,USD,C,RA,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-5.98382,BOP diff --git a/ifrs17-template/Test/PracticalCase-CompareReinsuranceTest.ipynb b/ifrs17-template/Test/PracticalCase-CompareReinsuranceTest.ipynb index 71bbfbb1..294b6162 100644 --- a/ifrs17-template/Test/PracticalCase-CompareReinsuranceTest.ipynb +++ b/ifrs17-template/Test/PracticalCase-CompareReinsuranceTest.ipynb @@ -273,7 +273,7 @@ { "cell_type": "code", "source": [ - "csmAM.Where(x => x.Scenario == \"LR80\").Sum(x => x.Value).Should().BeApproximately(-55.015398, Precision);" + "csmAM.Where(x => x.Scenario == \"LR80\").Sum(x => x.Value).Should().BeApproximately(-114.985866, Precision);" ], "metadata": {}, "execution_count": 0, diff --git a/ifrs17/Report/ReportScopes.ipynb b/ifrs17/Report/ReportScopes.ipynb index 1a2dc02a..c7422c32 100644 --- a/ifrs17/Report/ReportScopes.ipynb +++ b/ifrs17/Report/ReportScopes.ipynb @@ -915,13 +915,11 @@ "\n .AggregateOver(nameof(Novelty))", "\n .SelectToDataCube(v => v with { VariableType = \"IFIE3\" });", "\n", - "\n IDataCube FinancialChanges => 1 * (Loreco.Filter((\"VariableType\", AocTypes.IA)) +", + "\n IDataCube FinancialChangesToIse => -1 * (Loreco.Filter((\"VariableType\", AocTypes.IA)) +", "\n Loreco.Filter((\"VariableType\", AocTypes.YCU)) +", "\n Loreco.Filter((\"VariableType\", AocTypes.CRU)) )", "\n .AggregateOver(nameof(Novelty), nameof(VariableType))", - "\n .SelectToDataCube(v => v with { Novelty = Novelties.C, VariableType = \"IFIE1\" });", - "\n", - "\n IDataCube FinancialChangesToIse => -1 * FinancialChanges.SelectToDataCube(v => v with { VariableType = \"ISE11\" });", + "\n .SelectToDataCube(v => v with { Novelty = Novelties.C, VariableType = \"ISE11\" });", "\n}" ], "metadata": {}, @@ -1566,14 +1564,8 @@ "\n .AggregateOver(nameof(Novelty))", "\n .SelectToDataCube(v => v with { VariableType = \"IFIE3\" });", "\n", - "\n private IDataCube LorecoFinancialChanges => 1 * (Loreco.Filter((\"VariableType\", AocTypes.IA)) +", - "\n Loreco.Filter((\"VariableType\", AocTypes.YCU)) +", - "\n Loreco.Filter((\"VariableType\", AocTypes.CRU)) )", - "\n .AggregateOver(nameof(Novelty), nameof(VariableType))", - "\n .SelectToDataCube(v => v with { Novelty = Novelties.C, VariableType = \"IFIE1\" });", - "\n", "\n //Insurance Finance Income/Expense Oci", - "\n IDataCube InsuranceFinanceIncomeExpenseOci => FpFcfFx + FpFcfFinancial + OciFcfFx + OciFcfFinancial + CsmFx + CsmFinancialChanges + LcFx + LcFinancialChanges + LorecoFx + LorecoFinancialChanges;", + "\n IDataCube InsuranceFinanceIncomeExpenseOci => FpFcfFx + FpFcfFinancial + OciFcfFx + OciFcfFinancial + CsmFx + CsmFinancialChanges + LcFx + LcFinancialChanges + LorecoFx;", "\n}" ], "metadata": {}, From 0f2ea4d4e37790f2c58182297ab4b7287d28f6d2 Mon Sep 17 00:00:00 2001 From: Davide Colleoni Date: Fri, 30 Jun 2023 16:00:05 +0200 Subject: [PATCH 20/24] import scopes refinements --- .../Import/4ImportScope-TechnicalMargin.ipynb | 59 ++++++++++++------- ifrs17/Import/5ImportScope-ToIfrsVar.ipynb | 18 +++++- ifrs17/Import/ImportStorage.ipynb | 3 +- ifrs17/Utils/ImportCalculationMethods.ipynb | 18 ++++++ 4 files changed, 74 insertions(+), 24 deletions(-) diff --git a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb index ddca2eab..0c12fafe 100644 --- a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb +++ b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb @@ -168,9 +168,31 @@ "\n# Technical Margin", "\n", "\nFor the computation of the $CSM$ or $LC$ component values for each step of the [AoC Step Structure](#aoc-step-structure), it is convenient to introduce the ", - "\nnotion of technical margin $TM$. In the case of BBA methodology, the Locked-in interest rates discounting is applied to obtain the PV and RA values.", - "\n", - "\nThis can be summarized as follows:", + "\nnotion of technical margin $TM$. In the case of BBA methodology, the Locked-in interest rates discounting is applied to obtain the PV and RA values. Not all amount types from Best Estimate present values are included in the calculation of TM: Non-Attributable Expenses are excluded. For Reinsurance current Credit Default Rate and Attributable Expenses are excluded. The Credit Default Rate is included considering the locked-in parameters (valid at the first year of validity of the Group of Reinsurance Contracts) for [Partner rating](../DataModel/DataStructure#partner-rating) and [Credit default rate](../DataModel/DataStructure#credit-default-rate). " + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "public interface TechnicalMarginAmountType : IScope<(string DataNode, string EstimateType), ImportStorage>", + "\n{", + "\n private IEnumerable amountTypesToExclude => Identity.EstimateType == EstimateTypes.LR", + "\n ? GetStorage().GetNonAttributableAmountType().Concat(AmountTypes.CDR.RepeatOnce()).Concat(GetStorage().GetAttributableExpenses())", + "\n : GetStorage().GetNonAttributableAmountType().Concat(AmountTypes.CDR.RepeatOnce());", + "\n IEnumerable Values => GetScope(Identity.DataNode).BeAmountTypes.Except(amountTypesToExclude);", + "\n}" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "The calculation of the Technical Margin can be summarized as follows:", "\n", "\n$$", "\nTM(s) = \\left\\{", @@ -185,6 +207,8 @@ "\n\\\\", "\n-AF \\cdot~\\text{Aggregated}~TM(\\text{AM})~ & \\text{if }s = \\text{AM}.", "\n\\\\", + "\n\\text{Aggregated}~TM(\\text{EOP})~ & \\text{if }s = \\text{EOP}.", + "\n\\\\", "\n\\text{PV}(\\text{s})\\bigg|_{\\substack{\\text{Non Attributable} \\\\ \\text{Amount Types} \\\\ \\text{excluded}}} ", "\n+ \\text{RA}(\\text{s})~ & \\text{otherwise} ", "\n\\end{array}", @@ -244,11 +268,9 @@ "\n .WithApplicability(x => x.Identity.AocType == AocTypes.EOP)", "\n );", "\n ", - "\n private string estimateType => GetContext();//Distinguish between C and LR for filtering the AmountType from PV", + "\n private string estimateType => GetContext();", "\n [NotVisible] string EconomicBasis => EconomicBases.L;", - "\n ", - "\n double Value => GetScope(Identity.DataNode).BeAmountTypes", - "\n .Except(GetStorage().GetNonAttributableAmountType().Concat(AmountTypes.CDR.RepeatOnce()))", + "\n double Value => GetScope((Identity.DataNode, estimateType)).Values", "\n .Sum(at => GetScope((Identity, at, EstimateTypes.BE, (int?)null), o => o.WithContext(EconomicBasis)).Value) +", "\n GetScope((Identity, (string)null, EstimateTypes.RA, (int?)null), o => o.WithContext(EconomicBasis)).Value;", "\n ", @@ -264,8 +286,6 @@ "\n double TechnicalMargin.Value => GetScope(Identity with {AocType = AocTypes.EOP, Novelty = Novelties.C, ProjectionPeriod = Identity.ProjectionPeriod - 1}).Value; ", "\n}", "\n", - "\n", - "\n", "\npublic interface TechnicalMarginForBOP : TechnicalMargin", "\n{", "\n private double ValueCsm => GetStorage().GetValue(Identity, null, EstimateTypes.C, null, Identity.ProjectionPeriod);", @@ -274,13 +294,11 @@ "\n double TechnicalMargin.Value => -1d * ValueCsm + ValueLc;", "\n}", "\n", - "\npublic interface TechnicalMarginDefaultValue : TechnicalMargin", - "\n{", + "\npublic interface TechnicalMarginDefaultValue : TechnicalMargin{", "\n double TechnicalMargin.Value => default;", "\n}", "\n", - "\npublic interface TechnicalMarginForIA : TechnicalMargin", - "\n{", + "\npublic interface TechnicalMarginForIA : TechnicalMargin{", "\n private int timeStep => GetStorage().GetTimeStep(Identity.ProjectionPeriod);", "\n private int shift => GetStorage().GetShift(Identity.ProjectionPeriod);", "\n ", @@ -293,8 +311,7 @@ "\n double TechnicalMargin.Value => AggregatedValue * interestAccretionFactor;", "\n}", "\n", - "\npublic interface TechnicalMarginForEA : TechnicalMargin", - "\n{", + "\npublic interface TechnicalMarginForEA : TechnicalMargin{", "\n static ApplicabilityBuilder ScopeApplicabilityBuilderInner(ApplicabilityBuilder builder) => ", "\n builder.ForScope(s => s.WithApplicability(x => x.Identity.IsReinsurance));", "\n ", @@ -317,16 +334,14 @@ "\n double TechnicalMargin.Value => premiums + attributableExpenseAndCommissions + investmentClaims;", "\n}", "\n", - "\npublic interface TechnicalMarginForAM : TechnicalMargin", - "\n{", + "\npublic interface TechnicalMarginForAM : TechnicalMargin{", "\n static ApplicabilityBuilder ScopeApplicabilityBuilder(ApplicabilityBuilder builder) =>", "\n builder.ForScope(s => s.WithApplicability(x => x.Identity.ValuationApproach == ValuationApproaches.PAA)); ", "\n ", "\n double TechnicalMargin.Value => -1d * AggregatedValue * GetScope((Identity, AmountTypes.CU, 0), o => o.WithContext(EconomicBasis)).Value;", "\n}", "\n", - "\npublic interface TechnicalMarginForAmForPaa : TechnicalMargin", - "\n{", + "\npublic interface TechnicalMarginForAmForPaa : TechnicalMargin{", "\n double TechnicalMargin.Value => GetScope(Identity.DataNode).BeAmountTypes", "\n .Except(GetStorage().GetNonAttributableAmountType())", "\n .Sum(at => GetScope((Identity with {AocType = AocTypes.CF, Novelty = Novelties.I}, at, EstimateTypes.BE, (int?)null), o => o.WithContext(EconomicBasis)).Value +", @@ -493,7 +508,6 @@ "source": [ "public interface AllocateTechnicalMargin: IScope", "\n{", - "\n //Switch", "\n static ApplicabilityBuilder ScopeApplicabilityBuilder(ApplicabilityBuilder builder) => ", "\n builder.ForScope(s => s", "\n .WithApplicability(x => x.GetStorage().IsSecondaryScope(x.Identity.DataNode))", @@ -641,7 +655,10 @@ "\nLoReCo Boundary(\\text{r}) = \\sum_{g~\\in~\\text{underlying GICs}} \\text{RC}_{g,r} \\text{LC}(g).", "\n$$", "\n", - "\nWithin the **Premium Allocation Approach** the LoReCo Component corresponds to the computed $$LoReCo Boundary$$." + "\nWithin the **Premium Allocation Approach** the LoReCo Component corresponds to the computed $$LoReCo Boundary$$.", + "\n", + "\nCurrent implementation limitations: ", + "\n- missing FX conversion between the Functional currencies of the Group of Insurance Contracts and the Group of Reinsurance Contracts. They are assume to have the same Functional currency." ], "metadata": {}, "execution_count": 0, diff --git a/ifrs17/Import/5ImportScope-ToIfrsVar.ipynb b/ifrs17/Import/5ImportScope-ToIfrsVar.ipynb index a784d7dd..aa0e9195 100644 --- a/ifrs17/Import/5ImportScope-ToIfrsVar.ipynb +++ b/ifrs17/Import/5ImportScope-ToIfrsVar.ipynb @@ -455,7 +455,12 @@ "source": [ "public interface TmToIfrsVariable: IScope", "\n{", - "\n private string EconomicBasis => Identity.ValuationApproach == ValuationApproaches.VFA ? EconomicBases.C : EconomicBases.L;", + "\n private string EconomicBasis => GetStorage().GetEconomicBasisDriver(Identity.DataNode);", + "\n private IEnumerable amountTypesForTm =>GetScope((Identity.DataNode, EstimateTypes.C)).Values;", + "\n private bool hasTechnicalMargin => GetStorage().GetRawVariables(Identity.DataNode).Any(x => x.EstimateType == EstimateTypes.RA || ", + "\n (x.EstimateType == EstimateTypes.BE && amountTypesForTm.Contains(x.AmountType))) || ", + "\n GetStorage().GetIfrsVariables(Identity.DataNode).Any(x => GetTechnicalMarginEstimateType().Contains(x.EstimateType));", + "\n", "\n IEnumerable AmortizationFactor => Identity.AocType == AocTypes.AM", "\n ? GetScope((Identity, AmountTypes.CU, 0), o => o.WithContext(EconomicBasis))", "\n .RepeatOnce()", @@ -470,7 +475,7 @@ "\n })", "\n : Enumerable.Empty();", "\n IEnumerable Csms => GetStorage().DataNodeDataBySystemName[Identity.DataNode].LiabilityType == LiabilityTypes.LIC || ", - "\n Identity.ValuationApproach == ValuationApproaches.PAA", + "\n (Identity.ValuationApproach == ValuationApproaches.PAA && !hasTechnicalMargin )", "\n ? Enumerable.Empty()", "\n : GetScope(Identity).RepeatOnce()", "\n .Select(x => new IfrsVariable{ EstimateType = x.EstimateType,", @@ -505,6 +510,15 @@ "metadata": {}, "execution_count": 0, "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] } ] } \ No newline at end of file diff --git a/ifrs17/Import/ImportStorage.ipynb b/ifrs17/Import/ImportStorage.ipynb index af05e903..554e2c3f 100644 --- a/ifrs17/Import/ImportStorage.ipynb +++ b/ifrs17/Import/ImportStorage.ipynb @@ -439,10 +439,11 @@ "\n public bool IsSecondaryScope (string dataNode) => DataNodesByImportScope[ImportScope.Secondary].Contains(dataNode);", "\n ", "\n // Other", - "\n public IEnumerable GetNonAttributableAmountType() => new string[]{AmountTypes.NE};", + "\n public IEnumerable GetNonAttributableAmountType() => GetNonAttributableAmountTypes().SelectMany(at => hierarchyCache.Get(at).Descendants(includeSelf : true).Select(x => x.SystemName));", "\n public IEnumerable GetAttributableExpenseAndCommissionAmountType() => hierarchyCache.Get(AmountTypes.ACA).Descendants(includeSelf : true).Select(x => x.SystemName)", "\n .Concat(hierarchyCache.Get(AmountTypes.AEA).Descendants(includeSelf : true).Select(x => x.SystemName));", "\n public IEnumerable GetInvestmentClaims() => hierarchyCache.Get(AmountTypes.ICO).Descendants(includeSelf : true).Select(x => x.SystemName);", + "\n public IEnumerable GetAttributableExpenses() => hierarchyCache.Get(AmountTypes.AE).Descendants(includeSelf : true).Select(x => x.SystemName);", "\n public IEnumerable GetDeferrableExpenses() => hierarchyCache.Get(AmountTypes.DE).Descendants(includeSelf : true).Select(x => x.SystemName);", "\n public IEnumerable GetPremiums() => hierarchyCache.Get(AmountTypes.PR).Descendants(includeSelf : true).Select(x => x.SystemName);", "\n public IEnumerable GetClaims() => hierarchyCache.Get(AmountTypes.CL).Descendants().Select(x => x.SystemName);", diff --git a/ifrs17/Utils/ImportCalculationMethods.ipynb b/ifrs17/Utils/ImportCalculationMethods.ipynb index 8de08fe4..28a9fe07 100644 --- a/ifrs17/Utils/ImportCalculationMethods.ipynb +++ b/ifrs17/Utils/ImportCalculationMethods.ipynb @@ -349,6 +349,24 @@ "execution_count": 0, "outputs": [] }, + { + "cell_type": "markdown", + "source": [ + "## Non Attributable AmountTypes" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "public static HashSet GetNonAttributableAmountTypes() => new string[]{AmountTypes.NE}.ToHashSet();" + ], + "metadata": {}, + "execution_count": 0, + "outputs": [] + }, { "cell_type": "markdown", "source": [ From a2c57d71411216e0e4ea3b0bd47374ed3f6cd8b8 Mon Sep 17 00:00:00 2001 From: Davide Colleoni Date: Mon, 3 Jul 2023 10:08:05 +0200 Subject: [PATCH 21/24] add economic basis to csm variables --- .../BM_CH_2020_12_MTUP10pct_C.csv | 16 +- .../BM_CH_2020_12__C.csv | 106 ++--- .../BM_CH_2021_3__C.csv | 162 ++++---- .../BM_CH_2021_3__L.csv | 52 +-- .../BM_CH_2021_3__LR.csv | 32 +- ...marks_2020_12_CH_MTUP10pct_Contractual.csv | 172 ++++---- ...ableBenchmarks_2020_12_CH__Contractual.csv | 172 ++++---- ...iableBenchmarks_2021_3_CH__Contractual.csv | 378 +++++++++--------- ifrs17/Import/5ImportScope-ToIfrsVar.ipynb | 7 +- 9 files changed, 550 insertions(+), 547 deletions(-) diff --git a/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2020_12_MTUP10pct_C.csv b/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2020_12_MTUP10pct_C.csv index a2acb6b2..86409710 100644 --- a/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2020_12_MTUP10pct_C.csv +++ b/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2020_12_MTUP10pct_C.csv @@ -3,11 +3,11 @@ Month,ReportingNode,Scenario,Year 12,CH,MTUP10pct,2020 @@C AccidentYear,AmountType,AocType,DataNode,EconomicBasis,EstimateType,Novelty,Values0 -,,AM,DT1.1,,C,C,-42.67021 -,,EOP,DT1.1,,C,C,22.35306 -,,BOP,DT1.1,,C,N,80.0332 -,,IA,DT1.1,,C,N,-0.00993 -,,AM,DTR1.1,,C,C,26.28586 -,,EOP,DTR1.1,,C,C,-13.77001 -,,BOP,DTR1.1,,C,N,-40.06074 -,,IA,DTR1.1,,C,N,0.00487 \ No newline at end of file +,,AM,DT1.1,L,C,C,-42.67021 +,,EOP,DT1.1,L,C,C,22.35306 +,,BOP,DT1.1,L,C,N,80.0332 +,,IA,DT1.1,L,C,N,-0.00993 +,,AM,DTR1.1,L,C,C,26.28586 +,,EOP,DTR1.1,L,C,C,-13.77001 +,,BOP,DTR1.1,L,C,N,-40.06074 +,,IA,DTR1.1,L,C,N,0.00487 \ No newline at end of file diff --git a/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2020_12__C.csv b/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2020_12__C.csv index 913d5646..e700dd22 100644 --- a/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2020_12__C.csv +++ b/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2020_12__C.csv @@ -3,61 +3,61 @@ Month,ReportingNode,Scenario,Year 12,CH,,2020 @@C AccidentYear,AmountType,AocType,DataNode,EconomicBasis,EstimateType,Novelty,Values0 -,,AM,DT1.1,,C,C,-82.02271 -,,EA,DT1.1,,C,C,-15 -,,EOP,DT1.1,,C,C,42.96811 -,,BOP,DT1.1,,C,N,139.90849 -,,IA,DT1.1,,C,N,0.08233 -,,AM,DT1.3,,C,C,-82.02271 -,,EA,DT1.3,,C,C,-15 -,,EOP,DT1.3,,C,C,42.96811 -,,BOP,DT1.3,,C,N,139.90849 -,,IA,DT1.3,,C,N,0.08233 -,,AM,DT1.4,,C,C,-82.02271 -,,EA,DT1.4,,C,C,-15 -,,EOP,DT1.4,,C,C,42.96811 -,,BOP,DT1.4,,C,N,139.90849 -,,IA,DT1.4,,C,N,0.08233 -,,AM,DT1.5,,C,C,-82.02271 -,,EA,DT1.5,,C,C,-15 -,,EOP,DT1.5,,C,C,42.96811 -,,BOP,DT1.5,,C,N,139.90849 -,,IA,DT1.5,,C,N,0.08233 -,,AM,DT2.1,,C,C,-82.02271 -,,EA,DT2.1,,C,C,-15 -,,EOP,DT2.1,,C,C,42.96811 -,,BOP,DT2.1,,C,N,139.90849 -,,IA,DT2.1,,C,N,0.08233 -,,AM,DT3.1,,C,C,-129.49727 -,,EA,DT3.1,,C,C,-15 -,,EOP,DT3.1,,C,C,67.83796 -,,BOP,DT3.1,,C,I,72.2 -,,IA,DT3.1,,C,I,0.1444 -,,BOP,DT3.1,,C,N,139.90849 -,,IA,DT3.1,,C,N,0.08233 -,,AM,DT4.1,,C,C,-82.02271 -,,EA,DT4.1,,C,C,-15 -,,EOP,DT4.1,,C,C,42.96811 -,,BOP,DT4.1,,C,N,139.90849 -,,IA,DT4.1,,C,N,0.08233 +,,AM,DT1.1,L,C,C,-82.02271 +,,EA,DT1.1,L,C,C,-15 +,,EOP,DT1.1,L,C,C,42.96811 +,,BOP,DT1.1,L,C,N,139.90849 +,,IA,DT1.1,L,C,N,0.08233 +,,AM,DT1.3,L,C,C,-82.02271 +,,EA,DT1.3,L,C,C,-15 +,,EOP,DT1.3,L,C,C,42.96811 +,,BOP,DT1.3,L,C,N,139.90849 +,,IA,DT1.3,L,C,N,0.08233 +,,AM,DT1.4,L,C,C,-82.02271 +,,EA,DT1.4,L,C,C,-15 +,,EOP,DT1.4,L,C,C,42.96811 +,,BOP,DT1.4,L,C,N,139.90849 +,,IA,DT1.4,L,C,N,0.08233 +,,AM,DT1.5,L,C,C,-82.02271 +,,EA,DT1.5,L,C,C,-15 +,,EOP,DT1.5,L,C,C,42.96811 +,,BOP,DT1.5,L,C,N,139.90849 +,,IA,DT1.5,L,C,N,0.08233 +,,AM,DT2.1,L,C,C,-82.02271 +,,EA,DT2.1,L,C,C,-15 +,,EOP,DT2.1,L,C,C,42.96811 +,,BOP,DT2.1,L,C,N,139.90849 +,,IA,DT2.1,L,C,N,0.08233 +,,AM,DT3.1,L,C,C,-129.49727 +,,EA,DT3.1,L,C,C,-15 +,,EOP,DT3.1,L,C,C,67.83796 +,,BOP,DT3.1,L,C,I,72.2 +,,IA,DT3.1,L,C,I,0.1444 +,,BOP,DT3.1,L,C,N,139.90849 +,,IA,DT3.1,L,C,N,0.08233 +,,AM,DT4.1,L,C,C,-82.02271 +,,EA,DT4.1,L,C,C,-15 +,,EOP,DT4.1,L,C,C,42.96811 +,,BOP,DT4.1,L,C,N,139.90849 +,,IA,DT4.1,L,C,N,0.08233 ,,AM,DT5.1,,C,C,-82.02271 ,,EA,DT5.1,,C,C,-15 ,,EOP,DT5.1,,C,C,42.96811 ,,BOP,DT5.1,,C,N,139.90849 ,,IA,DT5.1,,C,N,0.08233 -,,AM,DTR1.1,,C,C,45.95948 -,,EOP,DTR1.1,,C,C,-24.07616 -,,BOP,DTR1.1,,C,N,-69.99438 -,,IA,DTR1.1,,C,N,-0.04126 -,,AM,DTR1.3,,C,C,45.95948 -,,EOP,DTR1.3,,C,C,-24.07616 -,,BOP,DTR1.3,,C,N,-69.99438 -,,IA,DTR1.3,,C,N,-0.04126 -,,AM,DTR1.4,,C,C,45.95948 -,,EOP,DTR1.4,,C,C,-24.07616 -,,BOP,DTR1.4,,C,N,-69.99438 -,,IA,DTR1.4,,C,N,-0.04126 -,,AM,DTR2.1,,C,C,45.95948 -,,EOP,DTR2.1,,C,C,-24.07616 -,,BOP,DTR2.1,,C,N,-69.99438 -,,IA,DTR2.1,,C,N,-0.04126 \ No newline at end of file +,,AM,DTR1.1,L,C,C,45.95948 +,,EOP,DTR1.1,L,C,C,-24.07616 +,,BOP,DTR1.1,L,C,N,-69.99438 +,,IA,DTR1.1,L,C,N,-0.04126 +,,AM,DTR1.3,L,C,C,45.95948 +,,EOP,DTR1.3,L,C,C,-24.07616 +,,BOP,DTR1.3,L,C,N,-69.99438 +,,IA,DTR1.3,L,C,N,-0.04126 +,,AM,DTR1.4,L,C,C,45.95948 +,,EOP,DTR1.4,L,C,C,-24.07616 +,,BOP,DTR1.4,L,C,N,-69.99438 +,,IA,DTR1.4,L,C,N,-0.04126 +,,AM,DTR2.1,L,C,C,45.95948 +,,EOP,DTR2.1,L,C,C,-24.07616 +,,BOP,DTR2.1,L,C,N,-69.99438 +,,IA,DTR2.1,L,C,N,-0.04126 \ No newline at end of file diff --git a/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__C.csv b/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__C.csv index 6499a927..8eb59fe9 100644 --- a/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__C.csv +++ b/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__C.csv @@ -3,84 +3,84 @@ Month,ReportingNode,Scenario,Year 3,CH,,2021 @@C AccidentYear,AmountType,AocType,DataNode,EconomicBasis,EstimateType,Novelty,Values0 -,,AM,DT1.1,,C,C,-6.28963 -,,CL,DT1.1,,C,C,-87.43136 -,,EA,DT1.1,,C,C,-42 -,,EOP,DT1.1,,C,C,13.21352 -,,BOP,DT1.1,,C,I,42.96811 -,,IA,DT1.1,,C,I,0.07437 -,,MC,DT1.1,,C,I,105.89201 -,,AM,DT1.3,,C,C,-4.35467 -,,CL,DT1.3,,C,C,-87.43136 -,,EA,DT1.3,,C,C,-48 -,,EOP,DT1.3,,C,C,9.14848 -,,BOP,DT1.3,,C,I,42.96811 -,,IA,DT1.3,,C,I,0.07437 -,,MC,DT1.3,,C,I,105.89201 -,,AM,DT1.4,,C,C,-6.28963 -,,CL,DT1.4,,C,C,-87.43136 -,,EA,DT1.4,,C,C,-42 -,,EOP,DT1.4,,C,C,13.21352 -,,BOP,DT1.4,,C,I,42.96811 -,,IA,DT1.4,,C,I,0.07437 -,,MC,DT1.4,,C,I,105.89201 -,,AM,DT1.5,,C,C,-6.28963 -,,CL,DT1.5,,C,C,-87.43136 -,,EA,DT1.5,,C,C,-42 -,,EOP,DT1.5,,C,C,13.21352 -,,BOP,DT1.5,,C,I,42.96811 -,,IA,DT1.5,,C,I,0.07437 -,,MC,DT1.5,,C,I,105.89201 -,,AM,DT2.1,,C,C,-6.28963 -,,CL,DT2.1,,C,C,-87.43136 -,,EA,DT2.1,,C,C,-42 -,,EOP,DT2.1,,C,C,13.21352 -,,BOP,DT2.1,,C,I,42.96811 -,,IA,DT2.1,,C,I,0.07437 -,,MC,DT2.1,,C,I,105.89201 -,,CL,DT3.1,,C,C,-139.94507 -,,EA,DT3.1,,C,C,-33.8717 -,,BOP,DT3.1,,C,I,67.83796 -,,IA,DT3.1,,C,I,0.0868 -,,MC,DT3.1,,C,I,105.89201 -,,AM,DT4.1,,C,C,-34.00598 -,,EA,DT4.1,,C,C,-50 -,,EOP,DT4.1,,C,C,71.44125 -,,BOP,DT4.1,,C,I,42.96811 -,,IA,DT4.1,,C,I,0.07437 -,,MC,DT4.1,,C,I,105.89201 -,,BOP,DT4.1,,C,N,8.00465 -,,EV,DT4.1,,C,N,-1.49226 -,,IA,DT4.1,,C,N,0.00034 -,,AM,DTR1.1,,C,C,10.75385 -,,EOP,DTR1.1,,C,C,-22.59217 -,,BOP,DTR1.1,,C,I,-24.07616 -,,IA,DTR1.1,,C,I,-0.03848 -,,MC,DTR1.1,,C,I,-52.94408 -,,BOP,DTR1.1,,C,N,15.97745 -,,EV,DTR1.1,,C,N,27.72711 -,,IA,DTR1.1,,C,N,0.00815 -,,AM,DTR1.3,,C,C,10.75385 -,,EOP,DTR1.3,,C,C,-22.59217 -,,BOP,DTR1.3,,C,I,-24.07616 -,,IA,DTR1.3,,C,I,-0.03848 -,,MC,DTR1.3,,C,I,-52.94408 -,,BOP,DTR1.3,,C,N,15.97745 -,,EV,DTR1.3,,C,N,27.72711 -,,IA,DTR1.3,,C,N,0.00815 -,,AM,DTR1.4,,C,C,10.75385 -,,EOP,DTR1.4,,C,C,-22.59217 -,,BOP,DTR1.4,,C,I,-24.07616 -,,IA,DTR1.4,,C,I,-0.03848 -,,MC,DTR1.4,,C,I,-52.94408 -,,BOP,DTR1.4,,C,N,15.97745 -,,EV,DTR1.4,,C,N,27.72711 -,,IA,DTR1.4,,C,N,0.00815 -,,AM,DTR2.1,,C,C,10.75385 -,,EOP,DTR2.1,,C,C,-22.59217 -,,BOP,DTR2.1,,C,I,-24.07616 -,,IA,DTR2.1,,C,I,-0.03848 -,,MC,DTR2.1,,C,I,-52.94408 -,,BOP,DTR2.1,,C,N,15.97745 -,,EV,DTR2.1,,C,N,27.72711 -,,IA,DTR2.1,,C,N,0.00815 \ No newline at end of file +,,AM,DT1.1,L,C,C,-6.28963 +,,CL,DT1.1,L,C,C,-87.43136 +,,EA,DT1.1,L,C,C,-42 +,,EOP,DT1.1,L,C,C,13.21352 +,,BOP,DT1.1,L,C,I,42.96811 +,,IA,DT1.1,L,C,I,0.07437 +,,MC,DT1.1,L,C,I,105.89201 +,,AM,DT1.3,L,C,C,-4.35467 +,,CL,DT1.3,L,C,C,-87.43136 +,,EA,DT1.3,L,C,C,-48 +,,EOP,DT1.3,L,C,C,9.14848 +,,BOP,DT1.3,L,C,I,42.96811 +,,IA,DT1.3,L,C,I,0.07437 +,,MC,DT1.3,L,C,I,105.89201 +,,AM,DT1.4,L,C,C,-6.28963 +,,CL,DT1.4,L,C,C,-87.43136 +,,EA,DT1.4,L,C,C,-42 +,,EOP,DT1.4,L,C,C,13.21352 +,,BOP,DT1.4,L,C,I,42.96811 +,,IA,DT1.4,L,C,I,0.07437 +,,MC,DT1.4,L,C,I,105.89201 +,,AM,DT1.5,L,C,C,-6.28963 +,,CL,DT1.5,L,C,C,-87.43136 +,,EA,DT1.5,L,C,C,-42 +,,EOP,DT1.5,L,C,C,13.21352 +,,BOP,DT1.5,L,C,I,42.96811 +,,IA,DT1.5,L,C,I,0.07437 +,,MC,DT1.5,L,C,I,105.89201 +,,AM,DT2.1,L,C,C,-6.28963 +,,CL,DT2.1,L,C,C,-87.43136 +,,EA,DT2.1,L,C,C,-42 +,,EOP,DT2.1,L,C,C,13.21352 +,,BOP,DT2.1,L,C,I,42.96811 +,,IA,DT2.1,L,C,I,0.07437 +,,MC,DT2.1,L,C,I,105.89201 +,,CL,DT3.1,L,C,C,-139.94507 +,,EA,DT3.1,L,C,C,-33.8717 +,,BOP,DT3.1,L,C,I,67.83796 +,,IA,DT3.1,L,C,I,0.0868 +,,MC,DT3.1,L,C,I,105.89201 +,,AM,DT4.1,L,C,C,-34.00598 +,,EA,DT4.1,L,C,C,-50 +,,EOP,DT4.1,L,C,C,71.44125 +,,BOP,DT4.1,L,C,I,42.96811 +,,IA,DT4.1,L,C,I,0.07437 +,,MC,DT4.1,L,C,I,105.89201 +,,BOP,DT4.1,L,C,N,8.00465 +,,EV,DT4.1,L,C,N,-1.49226 +,,IA,DT4.1,L,C,N,0.00034 +,,AM,DTR1.1,L,C,C,10.75385 +,,EOP,DTR1.1,L,C,C,-22.59217 +,,BOP,DTR1.1,L,C,I,-24.07616 +,,IA,DTR1.1,L,C,I,-0.03848 +,,MC,DTR1.1,L,C,I,-52.94408 +,,BOP,DTR1.1,L,C,N,15.97745 +,,EV,DTR1.1,L,C,N,27.72711 +,,IA,DTR1.1,L,C,N,0.00815 +,,AM,DTR1.3,L,C,C,10.75385 +,,EOP,DTR1.3,L,C,C,-22.59217 +,,BOP,DTR1.3,L,C,I,-24.07616 +,,IA,DTR1.3,L,C,I,-0.03848 +,,MC,DTR1.3,L,C,I,-52.94408 +,,BOP,DTR1.3,L,C,N,15.97745 +,,EV,DTR1.3,L,C,N,27.72711 +,,IA,DTR1.3,L,C,N,0.00815 +,,AM,DTR1.4,L,C,C,10.75385 +,,EOP,DTR1.4,L,C,C,-22.59217 +,,BOP,DTR1.4,L,C,I,-24.07616 +,,IA,DTR1.4,L,C,I,-0.03848 +,,MC,DTR1.4,L,C,I,-52.94408 +,,BOP,DTR1.4,L,C,N,15.97745 +,,EV,DTR1.4,L,C,N,27.72711 +,,IA,DTR1.4,L,C,N,0.00815 +,,AM,DTR2.1,L,C,C,10.75385 +,,EOP,DTR2.1,L,C,C,-22.59217 +,,BOP,DTR2.1,L,C,I,-24.07616 +,,IA,DTR2.1,L,C,I,-0.03848 +,,MC,DTR2.1,L,C,I,-52.94408 +,,BOP,DTR2.1,L,C,N,15.97745 +,,EV,DTR2.1,L,C,N,27.72711 +,,IA,DTR2.1,L,C,N,0.00815 \ No newline at end of file diff --git a/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__L.csv b/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__L.csv index af6f9351..56818f58 100644 --- a/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__L.csv +++ b/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__L.csv @@ -3,29 +3,29 @@ Month,ReportingNode,Scenario,Year 3,CH,,2021 @@L AccidentYear,AmountType,AocType,DataNode,EconomicBasis,EstimateType,Novelty,Values0 -,,CL,DT3.1,,L,C,-87.43136 -,,EV,DT3.1,,L,N,55.45632 -,,IA,DT3.1,,L,N,0.0163 -,,BOP,DT3.1,,L,N,31.95874 -,,AM,DT3.1,,L,C,-8.1283 -,,EA,DT3.1,,L,C,8.1283 -,,CL,DT2.1,,L,C,-87.43136 -,,EV,DT2.1,,L,N,55.45632 -,,IA,DT2.1,,L,N,0.0163 -,,BOP,DT2.1,,L,N,31.95874 -,,CL,DT1.1,,L,C,-87.43136 -,,BOP,DT1.1,,L,N,31.95874 -,,IA,DT1.1,,L,N,0.0163 -,,EV,DT1.1,,L,N,55.45632 -,,BOP,DT1.3,,L,N,31.95874 -,,IA,DT1.3,,L,N,0.0163 -,,EV,DT1.3,,L,N,55.45632 -,,CL,DT1.3,,L,C,-87.43136 -,,BOP,DT1.4,,L,N,31.95874 -,,IA,DT1.4,,L,N,0.0163 -,,EV,DT1.4,,L,N,55.45632 -,,CL,DT1.4,,L,C,-87.43136 -,,BOP,DT1.5,,L,N,31.95874 -,,IA,DT1.5,,L,N,0.0163 -,,EV,DT1.5,,L,N,55.45632 -,,CL,DT1.5,,L,C,-87.43136 \ No newline at end of file +,,CL,DT1.1,L,L,C,-87.43136 +,,BOP,DT1.1,L,L,N,31.95874 +,,EV,DT1.1,L,L,N,55.45632 +,,IA,DT1.1,L,L,N,0.0163 +,,CL,DT1.3,L,L,C,-87.43136 +,,BOP,DT1.3,L,L,N,31.95874 +,,EV,DT1.3,L,L,N,55.45632 +,,IA,DT1.3,L,L,N,0.0163 +,,CL,DT1.4,L,L,C,-87.43136 +,,BOP,DT1.4,L,L,N,31.95874 +,,EV,DT1.4,L,L,N,55.45632 +,,IA,DT1.4,L,L,N,0.0163 +,,CL,DT1.5,L,L,C,-87.43136 +,,BOP,DT1.5,L,L,N,31.95874 +,,EV,DT1.5,L,L,N,55.45632 +,,IA,DT1.5,L,L,N,0.0163 +,,CL,DT2.1,L,L,C,-87.43136 +,,BOP,DT2.1,L,L,N,31.95874 +,,EV,DT2.1,L,L,N,55.45632 +,,IA,DT2.1,L,L,N,0.0163 +,,AM,DT3.1,L,L,C,-8.1283 +,,CL,DT3.1,L,L,C,-87.43136 +,,EA,DT3.1,L,L,C,8.1283 +,,BOP,DT3.1,L,L,N,31.95874 +,,EV,DT3.1,L,L,N,55.45632 +,,IA,DT3.1,L,L,N,0.0163 \ No newline at end of file diff --git a/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__LR.csv b/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__LR.csv index 41415c4c..c2fd772b 100644 --- a/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__LR.csv +++ b/ifrs17-template/Test/Data/IfrsVariableBenchmarks/BM_CH_2021_3__LR.csv @@ -3,19 +3,19 @@ Month,ReportingNode,Scenario,Year 3,CH,,2021 @@LR AccidentYear,AmountType,AocType,DataNode,EconomicBasis,EstimateType,Novelty,Values0 -,,CL,DTR1.1,,LR,C,43.71463 -,,BOP,DTR1.1,,LR,N,-15.97937 -,,EV,DTR1.1,,LR,N,-27.72711 -,,IA,DTR1.1,,LR,N,-0.00815 -,,CL,DTR1.3,,LR,C,43.71463 -,,BOP,DTR1.3,,LR,N,-15.97937 -,,EV,DTR1.3,,LR,N,-27.72711 -,,IA,DTR1.3,,LR,N,-0.00815 -,,CL,DTR1.4,,LR,C,43.71463 -,,BOP,DTR1.4,,LR,N,-15.97937 -,,EV,DTR1.4,,LR,N,-27.72711 -,,IA,DTR1.4,,LR,N,-0.00815 -,,CL,DTR2.1,,LR,C,43.71463 -,,BOP,DTR2.1,,LR,N,-15.97937 -,,EV,DTR2.1,,LR,N,-27.72711 -,,IA,DTR2.1,,LR,N,-0.00815 \ No newline at end of file +,,CL,DTR1.1,L,LR,C,43.71463 +,,BOP,DTR1.1,L,LR,N,-15.97937 +,,EV,DTR1.1,L,LR,N,-27.72711 +,,IA,DTR1.1,L,LR,N,-0.00815 +,,CL,DTR1.3,L,LR,C,43.71463 +,,BOP,DTR1.3,L,LR,N,-15.97937 +,,EV,DTR1.3,L,LR,N,-27.72711 +,,IA,DTR1.3,L,LR,N,-0.00815 +,,CL,DTR1.4,L,LR,C,43.71463 +,,BOP,DTR1.4,L,LR,N,-15.97937 +,,EV,DTR1.4,L,LR,N,-27.72711 +,,IA,DTR1.4,L,LR,N,-0.00815 +,,CL,DTR2.1,L,LR,C,43.71463 +,,BOP,DTR2.1,L,LR,N,-15.97937 +,,EV,DTR2.1,L,LR,N,-27.72711 +,,IA,DTR2.1,L,LR,N,-0.00815 \ No newline at end of file diff --git a/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2020_12_CH_MTUP10pct_Contractual.csv b/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2020_12_CH_MTUP10pct_Contractual.csv index 5e94fe1e..df0cb408 100644 --- a/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2020_12_CH_MTUP10pct_Contractual.csv +++ b/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2020_12_CH_MTUP10pct_Contractual.csv @@ -163,14 +163,14 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,400,IR77 0,PR,2020,USD,USD,L,BE,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-80,IR79 0,PR,2020,USD,USD,L,BE,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-399.63393,OCI1 -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-42.67021,AM -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,N,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,80.0332,BOP -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-15,EA -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,22.35306,EOP -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,N,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-0.00993,IA -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,0.00993,IFIE1 -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,42.67021,IR3 -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-65.0332,IR5 +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-42.67021,AM +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,N,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,80.0332,BOP +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-15,EA +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,22.35306,EOP +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,N,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-0.00993,IA +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,0.00993,IFIE1 +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,42.67021,IR3 +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-65.0332,IR5 0,,2020,USD,USD,,DA,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,9.84345,AM 0,,2020,USD,USD,,DA,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-15,CF 0,,2020,USD,USD,,DA,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-5.15655,EOP @@ -228,14 +228,14 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,400,IR77 0,PR,2020,USD,USD,L,BE,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,0,IR79 0,PR,2020,USD,USD,L,BE,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-399.63393,OCI1 -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-82.02271,AM -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,N,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,139.90849,BOP -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-15,EA -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,42.96811,EOP -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,N,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,0.08233,IA -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-0.08233,IFIE1 -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,82.02271,IR3 -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-124.90849,IR5 +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-82.02271,AM +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,N,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,139.90849,BOP +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-15,EA +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,42.96811,EOP +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,N,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,0.08233,IA +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-0.08233,IFIE1 +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,82.02271,IR3 +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-124.90849,IR5 0,,2020,USD,USD,,DA,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,9.84345,AM 0,,2020,USD,USD,,DA,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-15,CF 0,,2020,USD,USD,,DA,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-5.15655,EOP @@ -297,14 +297,14 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,400,IR77 0,PR,2020,USD,USD,L,BE,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-80,IR79 0,PR,2020,USD,USD,L,BE,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-399.63393,OCI1 -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-82.02271,AM -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,N,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,139.90849,BOP -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-15,EA -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,42.96811,EOP -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,N,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,0.08233,IA -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-0.08233,IFIE1 -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,82.02271,IR3 -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-124.90849,IR5 +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-82.02271,AM +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,N,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,139.90849,BOP +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-15,EA +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,42.96811,EOP +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,N,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,0.08233,IA +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-0.08233,IFIE1 +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,82.02271,IR3 +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-124.90849,IR5 0,,2020,USD,USD,,DA,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,9.84345,AM 0,,2020,USD,USD,,DA,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-15,CF 0,,2020,USD,USD,,DA,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-5.15655,EOP @@ -366,14 +366,14 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,400,IR77 0,PR,2020,USD,USD,L,BE,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-80,IR79 0,PR,2020,USD,USD,L,BE,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-399.63393,OCI1 -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-82.02271,AM -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,N,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,139.90849,BOP -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-15,EA -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,42.96811,EOP -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,N,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,0.08233,IA -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-0.08233,IFIE1 -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,82.02271,IR3 -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-124.90849,IR5 +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-82.02271,AM +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,N,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,139.90849,BOP +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-15,EA +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,42.96811,EOP +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,N,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,0.08233,IA +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-0.08233,IFIE1 +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,82.02271,IR3 +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-124.90849,IR5 0,,2020,USD,USD,,DA,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,9.84345,AM 0,,2020,USD,USD,,DA,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-15,CF 0,,2020,USD,USD,,DA,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,MTUP10pct,NotApplicable,BBA,-5.15655,EOP @@ -432,14 +432,14 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,-399.63393,EOP 0,PR,2020,USD,USD,L,BE,CHF,DT2.1,P,False,LRC,ANN,N,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,-1.0972,IA 0,PR,2020,USD,USD,L,BE,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,320,IR79 -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,-82.02271,AM -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,N,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,139.90849,BOP -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,-15,EA -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,42.96811,EOP -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,N,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,0.08233,IA -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,-0.08233,IFIE1 -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,82.02271,IR3 -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,-124.90849,IR5 +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,-82.02271,AM +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,N,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,139.90849,BOP +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,-15,EA +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,42.96811,EOP +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,N,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,0.08233,IA +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,-0.08233,IFIE1 +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,82.02271,IR3 +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,-124.90849,IR5 0,,2020,USD,USD,,DA,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,9.84345,AM 0,,2020,USD,USD,,DA,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,-15,CF 0,,2020,USD,USD,,DA,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,MTUP10pct,NotApplicable,BBA,-5.15655,EOP @@ -498,16 +498,16 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,400,IR77 0,PR,2020,USD,USD,L,BE,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,-80,IR79 0,PR,2020,USD,USD,L,BE,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,-399.63393,OCI1 -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,-129.49727,AM -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,I,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,72.2,BOP -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,N,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,139.90849,BOP -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,-15,EA -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,67.83796,EOP -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,I,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,0.1444,IA -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,N,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,0.08233,IA -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,-0.22673,IFIE1 -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,129.49727,IR3 -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,-124.90849,IR5 +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,-129.49727,AM +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,I,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,72.2,BOP +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,N,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,139.90849,BOP +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,-15,EA +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,67.83796,EOP +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,I,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,0.1444,IA +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,N,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,0.08233,IA +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,-0.22673,IFIE1 +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,129.49727,IR3 +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,-124.90849,IR5 0,,2020,USD,USD,,DA,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,9.84345,AM 0,,2020,USD,USD,,DA,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,-15,CF 0,,2020,USD,USD,,DA,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,MTUP10pct,NotApplicable,BBA,-5.15655,EOP @@ -567,14 +567,14 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,400,IR77 0,PR,2020,USD,USD,L,BE,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,-80,IR79 0,PR,2020,USD,USD,L,BE,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,-399.63393,OCI1 -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,-82.02271,AM -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,N,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,139.90849,BOP -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,-15,EA -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,42.96811,EOP -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,N,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,0.08233,IA -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,-0.08233,IFIE1 -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,82.02271,IR3 -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,-124.90849,IR5 +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,-82.02271,AM +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,N,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,139.90849,BOP +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,-15,EA +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,42.96811,EOP +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,N,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,0.08233,IA +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,-0.08233,IFIE1 +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,82.02271,IR3 +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,-124.90849,IR5 0,,2020,USD,USD,,DA,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,9.84345,AM 0,,2020,USD,USD,,DA,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,-15,CF 0,,2020,USD,USD,,DA,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,MTUP10pct,NotApplicable,BBA,-5.15655,EOP @@ -697,13 +697,13 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-0.5486,IFIE1 0,PR,2020,USD,USD,L,BE,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-199.26837,ISE10 0,PR,2020,USD,USD,L,BE,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,199.81696,OCI1 -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,26.28586,AM -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-40.06074,BOP -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-13.77001,EOP -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,0.00487,IA -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-0.00487,IFIE1 -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,40.06074,ISE10 -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-26.28586,ISE7 +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,26.28586,AM +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-40.06074,BOP +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-13.77001,EOP +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,0.00487,IA +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-0.00487,IFIE1 +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,40.06074,ISE10 +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-26.28586,ISE7 0,,2020,USD,USD,C,RA,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-29.93765,BOP 0,,2020,USD,USD,C,RA,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,15,CF 0,,2020,USD,USD,C,RA,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-14.98378,EOP @@ -760,13 +760,13 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-0.5486,IFIE1 0,PR,2020,USD,USD,L,BE,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-199.26837,ISE10 0,PR,2020,USD,USD,L,BE,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,199.81696,OCI1 -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,45.95948,AM -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-69.99438,BOP -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-24.07616,EOP -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-0.04126,IA -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,0.04126,IFIE1 -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,69.99438,ISE10 -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-45.95948,ISE7 +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,45.95948,AM +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-69.99438,BOP +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-24.07616,EOP +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-0.04126,IA +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,0.04126,IFIE1 +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,69.99438,ISE10 +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-45.95948,ISE7 0,NIC,2020,USD,USD,,OA,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-2.5,CF 0,NIC,2020,USD,USD,,OA,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-2.5,EOP 0,PR,2020,USD,USD,,OA,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,7.5,CF @@ -823,13 +823,13 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-0.5486,IFIE1 0,PR,2020,USD,USD,L,BE,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-199.26837,ISE10 0,PR,2020,USD,USD,L,BE,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,199.81696,OCI1 -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,45.95948,AM -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-69.99438,BOP -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-24.07616,EOP -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-0.04126,IA -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,0.04126,IFIE1 -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,69.99438,ISE10 -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-45.95948,ISE7 +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,45.95948,AM +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-69.99438,BOP +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-24.07616,EOP +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-0.04126,IA +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,0.04126,IFIE1 +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,69.99438,ISE10 +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-45.95948,ISE7 0,NIC,2020,USD,USD,,OA,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-10,CF 0,NIC,2020,USD,USD,,OA,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-10,EOP 0,,2020,USD,USD,C,RA,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,MTUP10pct,NotApplicable,BBA,-29.93765,BOP @@ -881,13 +881,13 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P11,CH,MTUP10pct,NotApplicable,BBA,-200,CF 0,PR,2020,USD,USD,L,BE,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,MTUP10pct,NotApplicable,BBA,199.81696,EOP 0,PR,2020,USD,USD,L,BE,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P11,CH,MTUP10pct,NotApplicable,BBA,0.5486,IA -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,MTUP10pct,NotApplicable,BBA,45.95948,AM -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P11,CH,MTUP10pct,NotApplicable,BBA,-69.99438,BOP -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,MTUP10pct,NotApplicable,BBA,-24.07616,EOP -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P11,CH,MTUP10pct,NotApplicable,BBA,-0.04126,IA -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,MTUP10pct,NotApplicable,BBA,0.04126,IFIE1 -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,MTUP10pct,NotApplicable,BBA,69.99438,ISE10 -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,MTUP10pct,NotApplicable,BBA,-45.95948,ISE7 +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,MTUP10pct,NotApplicable,BBA,45.95948,AM +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P11,CH,MTUP10pct,NotApplicable,BBA,-69.99438,BOP +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,MTUP10pct,NotApplicable,BBA,-24.07616,EOP +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P11,CH,MTUP10pct,NotApplicable,BBA,-0.04126,IA +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,MTUP10pct,NotApplicable,BBA,0.04126,IFIE1 +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,MTUP10pct,NotApplicable,BBA,69.99438,ISE10 +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,MTUP10pct,NotApplicable,BBA,-45.95948,ISE7 0,,2020,USD,USD,C,RA,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P11,CH,MTUP10pct,NotApplicable,BBA,-29.93765,BOP 0,,2020,USD,USD,C,RA,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P11,CH,MTUP10pct,NotApplicable,BBA,15,CF 0,,2020,USD,USD,C,RA,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,MTUP10pct,NotApplicable,BBA,-14.98378,EOP diff --git a/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2020_12_CH__Contractual.csv b/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2020_12_CH__Contractual.csv index 016da595..5232f077 100644 --- a/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2020_12_CH__Contractual.csv +++ b/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2020_12_CH__Contractual.csv @@ -163,14 +163,14 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,400,IR77 0,PR,2020,USD,USD,L,BE,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-80,IR79 0,PR,2020,USD,USD,L,BE,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-399.63393,OCI1 -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-82.02271,AM -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,N,Default,,DT1,P11,CH,,NotApplicable,BBA,139.90849,BOP -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-15,EA -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,42.96811,EOP -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,N,Default,,DT1,P11,CH,,NotApplicable,BBA,0.08233,IA -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-0.08233,IFIE1 -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,82.02271,IR3 -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-124.90849,IR5 +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-82.02271,AM +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,N,Default,,DT1,P11,CH,,NotApplicable,BBA,139.90849,BOP +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-15,EA +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,42.96811,EOP +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,N,Default,,DT1,P11,CH,,NotApplicable,BBA,0.08233,IA +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-0.08233,IFIE1 +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,82.02271,IR3 +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-124.90849,IR5 0,,2020,USD,USD,,DA,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,9.84345,AM 0,,2020,USD,USD,,DA,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-15,CF 0,,2020,USD,USD,,DA,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-5.15655,EOP @@ -228,14 +228,14 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,400,IR77 0,PR,2020,USD,USD,L,BE,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,0,IR79 0,PR,2020,USD,USD,L,BE,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-399.63393,OCI1 -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-82.02271,AM -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,N,Default,,DT1,P11,CH,,NotApplicable,BBA,139.90849,BOP -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-15,EA -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,42.96811,EOP -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,N,Default,,DT1,P11,CH,,NotApplicable,BBA,0.08233,IA -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-0.08233,IFIE1 -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,82.02271,IR3 -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-124.90849,IR5 +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-82.02271,AM +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,N,Default,,DT1,P11,CH,,NotApplicable,BBA,139.90849,BOP +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-15,EA +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,42.96811,EOP +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,N,Default,,DT1,P11,CH,,NotApplicable,BBA,0.08233,IA +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-0.08233,IFIE1 +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,82.02271,IR3 +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-124.90849,IR5 0,,2020,USD,USD,,DA,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,9.84345,AM 0,,2020,USD,USD,,DA,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-15,CF 0,,2020,USD,USD,,DA,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-5.15655,EOP @@ -297,14 +297,14 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,400,IR77 0,PR,2020,USD,USD,L,BE,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-80,IR79 0,PR,2020,USD,USD,L,BE,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-399.63393,OCI1 -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-82.02271,AM -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,N,Default,,DT1,P11,CH,,NotApplicable,BBA,139.90849,BOP -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-15,EA -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,42.96811,EOP -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,N,Default,,DT1,P11,CH,,NotApplicable,BBA,0.08233,IA -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-0.08233,IFIE1 -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,82.02271,IR3 -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-124.90849,IR5 +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-82.02271,AM +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,N,Default,,DT1,P11,CH,,NotApplicable,BBA,139.90849,BOP +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-15,EA +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,42.96811,EOP +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,N,Default,,DT1,P11,CH,,NotApplicable,BBA,0.08233,IA +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-0.08233,IFIE1 +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,82.02271,IR3 +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-124.90849,IR5 0,,2020,USD,USD,,DA,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,9.84345,AM 0,,2020,USD,USD,,DA,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-15,CF 0,,2020,USD,USD,,DA,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-5.15655,EOP @@ -366,14 +366,14 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,400,IR77 0,PR,2020,USD,USD,L,BE,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-80,IR79 0,PR,2020,USD,USD,L,BE,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-399.63393,OCI1 -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-82.02271,AM -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,N,Default,,DT1,P11,CH,,NotApplicable,BBA,139.90849,BOP -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-15,EA -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,42.96811,EOP -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,N,Default,,DT1,P11,CH,,NotApplicable,BBA,0.08233,IA -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-0.08233,IFIE1 -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,82.02271,IR3 -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-124.90849,IR5 +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-82.02271,AM +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,N,Default,,DT1,P11,CH,,NotApplicable,BBA,139.90849,BOP +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-15,EA +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,42.96811,EOP +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,N,Default,,DT1,P11,CH,,NotApplicable,BBA,0.08233,IA +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-0.08233,IFIE1 +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,82.02271,IR3 +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-124.90849,IR5 0,,2020,USD,USD,,DA,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,9.84345,AM 0,,2020,USD,USD,,DA,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-15,CF 0,,2020,USD,USD,,DA,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P11,CH,,NotApplicable,BBA,-5.15655,EOP @@ -432,14 +432,14 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,,NotApplicable,BBA,-399.63393,EOP 0,PR,2020,USD,USD,L,BE,CHF,DT2.1,P,False,LRC,ANN,N,,,DT2,P11,CH,,NotApplicable,BBA,-1.0972,IA 0,PR,2020,USD,USD,L,BE,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,,NotApplicable,BBA,320,IR79 -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,,NotApplicable,BBA,-82.02271,AM -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,N,,,DT2,P11,CH,,NotApplicable,BBA,139.90849,BOP -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,,NotApplicable,BBA,-15,EA -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,,NotApplicable,BBA,42.96811,EOP -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,N,,,DT2,P11,CH,,NotApplicable,BBA,0.08233,IA -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,,NotApplicable,BBA,-0.08233,IFIE1 -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,,NotApplicable,BBA,82.02271,IR3 -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,,NotApplicable,BBA,-124.90849,IR5 +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,,NotApplicable,BBA,-82.02271,AM +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,N,,,DT2,P11,CH,,NotApplicable,BBA,139.90849,BOP +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,,NotApplicable,BBA,-15,EA +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,,NotApplicable,BBA,42.96811,EOP +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,N,,,DT2,P11,CH,,NotApplicable,BBA,0.08233,IA +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,,NotApplicable,BBA,-0.08233,IFIE1 +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,,NotApplicable,BBA,82.02271,IR3 +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,,NotApplicable,BBA,-124.90849,IR5 0,,2020,USD,USD,,DA,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,,NotApplicable,BBA,9.84345,AM 0,,2020,USD,USD,,DA,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,,NotApplicable,BBA,-15,CF 0,,2020,USD,USD,,DA,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P11,CH,,NotApplicable,BBA,-5.15655,EOP @@ -498,16 +498,16 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,,NotApplicable,BBA,400,IR77 0,PR,2020,USD,USD,L,BE,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,,NotApplicable,BBA,-80,IR79 0,PR,2020,USD,USD,L,BE,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,,NotApplicable,BBA,-399.63393,OCI1 -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,,NotApplicable,BBA,-129.49727,AM -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,I,Default,,DT3,P11,CH,,NotApplicable,BBA,72.2,BOP -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,N,Default,,DT3,P11,CH,,NotApplicable,BBA,139.90849,BOP -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,,NotApplicable,BBA,-15,EA -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,,NotApplicable,BBA,67.83796,EOP -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,I,Default,,DT3,P11,CH,,NotApplicable,BBA,0.1444,IA -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,N,Default,,DT3,P11,CH,,NotApplicable,BBA,0.08233,IA -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,,NotApplicable,BBA,-0.22673,IFIE1 -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,,NotApplicable,BBA,129.49727,IR3 -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,,NotApplicable,BBA,-124.90849,IR5 +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,,NotApplicable,BBA,-129.49727,AM +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,I,Default,,DT3,P11,CH,,NotApplicable,BBA,72.2,BOP +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,N,Default,,DT3,P11,CH,,NotApplicable,BBA,139.90849,BOP +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,,NotApplicable,BBA,-15,EA +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,,NotApplicable,BBA,67.83796,EOP +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,I,Default,,DT3,P11,CH,,NotApplicable,BBA,0.1444,IA +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,N,Default,,DT3,P11,CH,,NotApplicable,BBA,0.08233,IA +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,,NotApplicable,BBA,-0.22673,IFIE1 +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,,NotApplicable,BBA,129.49727,IR3 +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,,NotApplicable,BBA,-124.90849,IR5 0,,2020,USD,USD,,DA,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,,NotApplicable,BBA,9.84345,AM 0,,2020,USD,USD,,DA,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,,NotApplicable,BBA,-15,CF 0,,2020,USD,USD,,DA,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P11,CH,,NotApplicable,BBA,-5.15655,EOP @@ -567,14 +567,14 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,,NotApplicable,BBA,400,IR77 0,PR,2020,USD,USD,L,BE,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,,NotApplicable,BBA,-80,IR79 0,PR,2020,USD,USD,L,BE,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,,NotApplicable,BBA,-399.63393,OCI1 -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,,NotApplicable,BBA,-82.02271,AM -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,N,Default,,DT4,P11,CH,,NotApplicable,BBA,139.90849,BOP -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,,NotApplicable,BBA,-15,EA -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,,NotApplicable,BBA,42.96811,EOP -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,N,Default,,DT4,P11,CH,,NotApplicable,BBA,0.08233,IA -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,,NotApplicable,BBA,-0.08233,IFIE1 -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,,NotApplicable,BBA,82.02271,IR3 -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,,NotApplicable,BBA,-124.90849,IR5 +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,,NotApplicable,BBA,-82.02271,AM +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,N,Default,,DT4,P11,CH,,NotApplicable,BBA,139.90849,BOP +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,,NotApplicable,BBA,-15,EA +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,,NotApplicable,BBA,42.96811,EOP +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,N,Default,,DT4,P11,CH,,NotApplicable,BBA,0.08233,IA +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,,NotApplicable,BBA,-0.08233,IFIE1 +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,,NotApplicable,BBA,82.02271,IR3 +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,,NotApplicable,BBA,-124.90849,IR5 0,,2020,USD,USD,,DA,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,,NotApplicable,BBA,9.84345,AM 0,,2020,USD,USD,,DA,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,,NotApplicable,BBA,-15,CF 0,,2020,USD,USD,,DA,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P11,CH,,NotApplicable,BBA,-5.15655,EOP @@ -697,13 +697,13 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-0.5486,IFIE1 0,PR,2020,USD,USD,L,BE,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-199.26837,ISE10 0,PR,2020,USD,USD,L,BE,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,199.81696,OCI1 -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,45.95948,AM -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-69.99438,BOP -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-24.07616,EOP -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-0.04126,IA -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,0.04126,IFIE1 -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,69.99438,ISE10 -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-45.95948,ISE7 +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,45.95948,AM +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-69.99438,BOP +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-24.07616,EOP +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-0.04126,IA +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,0.04126,IFIE1 +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,69.99438,ISE10 +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-45.95948,ISE7 0,,2020,USD,USD,C,RA,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-29.93765,BOP 0,,2020,USD,USD,C,RA,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,15,CF 0,,2020,USD,USD,C,RA,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-14.98378,EOP @@ -760,13 +760,13 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-0.5486,IFIE1 0,PR,2020,USD,USD,L,BE,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-199.26837,ISE10 0,PR,2020,USD,USD,L,BE,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,199.81696,OCI1 -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,45.95948,AM -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-69.99438,BOP -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-24.07616,EOP -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-0.04126,IA -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,0.04126,IFIE1 -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,69.99438,ISE10 -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-45.95948,ISE7 +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,45.95948,AM +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-69.99438,BOP +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-24.07616,EOP +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-0.04126,IA +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,0.04126,IFIE1 +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,69.99438,ISE10 +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-45.95948,ISE7 0,NIC,2020,USD,USD,,OA,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-2.5,CF 0,NIC,2020,USD,USD,,OA,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-2.5,EOP 0,PR,2020,USD,USD,,OA,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,7.5,CF @@ -823,13 +823,13 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-0.5486,IFIE1 0,PR,2020,USD,USD,L,BE,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-199.26837,ISE10 0,PR,2020,USD,USD,L,BE,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,199.81696,OCI1 -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,45.95948,AM -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-69.99438,BOP -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-24.07616,EOP -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-0.04126,IA -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,0.04126,IFIE1 -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,69.99438,ISE10 -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-45.95948,ISE7 +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,45.95948,AM +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-69.99438,BOP +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-24.07616,EOP +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-0.04126,IA +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,0.04126,IFIE1 +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,69.99438,ISE10 +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-45.95948,ISE7 0,NIC,2020,USD,USD,,OA,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-10,CF 0,NIC,2020,USD,USD,,OA,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-10,EOP 0,,2020,USD,USD,C,RA,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P11,CH,,NotApplicable,BBA,-29.93765,BOP @@ -881,13 +881,13 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P11,CH,,NotApplicable,BBA,-200,CF 0,PR,2020,USD,USD,L,BE,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,,NotApplicable,BBA,199.81696,EOP 0,PR,2020,USD,USD,L,BE,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P11,CH,,NotApplicable,BBA,0.5486,IA -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,,NotApplicable,BBA,45.95948,AM -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P11,CH,,NotApplicable,BBA,-69.99438,BOP -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,,NotApplicable,BBA,-24.07616,EOP -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P11,CH,,NotApplicable,BBA,-0.04126,IA -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,,NotApplicable,BBA,0.04126,IFIE1 -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,,NotApplicable,BBA,69.99438,ISE10 -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,,NotApplicable,BBA,-45.95948,ISE7 +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,,NotApplicable,BBA,45.95948,AM +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P11,CH,,NotApplicable,BBA,-69.99438,BOP +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,,NotApplicable,BBA,-24.07616,EOP +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P11,CH,,NotApplicable,BBA,-0.04126,IA +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,,NotApplicable,BBA,0.04126,IFIE1 +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,,NotApplicable,BBA,69.99438,ISE10 +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,,NotApplicable,BBA,-45.95948,ISE7 0,,2020,USD,USD,C,RA,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P11,CH,,NotApplicable,BBA,-29.93765,BOP 0,,2020,USD,USD,C,RA,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P11,CH,,NotApplicable,BBA,15,CF 0,,2020,USD,USD,C,RA,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P11,CH,,NotApplicable,BBA,-14.98378,EOP diff --git a/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2021_3_CH__Contractual.csv b/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2021_3_CH__Contractual.csv index ea5b4e5e..e59b6fee 100644 --- a/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2021_3_CH__Contractual.csv +++ b/ifrs17-template/Test/Data/ReportVariableBenchmarks/ReportVariableBenchmarks_2021_3_CH__Contractual.csv @@ -309,30 +309,30 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-24,IR79 0,PR,2020,USD,USD,L,BE,CHF,DT1.1,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,-39.96339,MC 0,PR,2020,USD,USD,L,BE,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,54.86359,OCI1 -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-6.28963,AM -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,42.96811,BOP -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-87.43136,CL -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-42,EA -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,13.21352,EOP -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,0.07437,IA -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0.07437,IFIE1 -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,6.28963,IR3 -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,23.53934,IR5 -0,,2020,USD,USD,,C,CHF,DT1.1,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,105.89201,MC +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-6.28963,AM +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,42.96811,BOP +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-87.43136,CL +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-42,EA +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,13.21352,EOP +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,0.07437,IA +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0.07437,IFIE1 +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,6.28963,IR3 +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,23.53934,IR5 +0,,2020,USD,USD,L,C,CHF,DT1.1,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,105.89201,MC 0,,2020,USD,USD,,DA,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,6.50034,AM 0,,2020,USD,USD,,DA,CHF,DT1.1,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,-5.15655,BOP 0,,2020,USD,USD,,DA,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-15,CF 0,,2020,USD,USD,,DA,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-13.65621,EOP 0,,2020,USD,USD,,DA,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,6.50034,IR4 0,,2020,USD,USD,,DA,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-6.50034,ISE6 -0,,2020,USD,USD,,L,CHF,DT1.1,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,31.95874,BOP -0,,2020,USD,USD,,L,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-87.43136,CL -0,,2020,USD,USD,,L,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0,EOP -0,,2020,USD,USD,,L,CHF,DT1.1,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,55.45632,EV -0,,2020,USD,USD,,L,CHF,DT1.1,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,0.0163,IA -0,,2020,USD,USD,,L,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0.0163,IFIE1 -0,,2020,USD,USD,,L,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0.0163,IR5 -0,,2020,USD,USD,,L,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0,ISE11 +0,,2020,USD,USD,L,L,CHF,DT1.1,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,31.95874,BOP +0,,2020,USD,USD,L,L,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-87.43136,CL +0,,2020,USD,USD,L,L,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0,EOP +0,,2020,USD,USD,L,L,CHF,DT1.1,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,55.45632,EV +0,,2020,USD,USD,L,L,CHF,DT1.1,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,0.0163,IA +0,,2020,USD,USD,L,L,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0.0163,IFIE1 +0,,2020,USD,USD,L,L,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0.0163,IR5 +0,,2020,USD,USD,L,L,CHF,DT1.1,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0,ISE11 0,,2020,USD,USD,C,RA,CHF,DT1.1,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,29.96755,BOP 0,,2020,USD,USD,C,RA,CHF,DT1.1,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,11.96764,BOP 0,,2020,USD,USD,C,RA,CHF,DT1.1,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,-6,CF @@ -434,30 +434,30 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0,IR79 0,PR,2020,USD,USD,L,BE,CHF,DT1.3,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,-39.96339,MC 0,PR,2020,USD,USD,L,BE,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,54.86359,OCI1 -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-4.35467,AM -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,42.96811,BOP -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-87.43136,CL -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-48,EA -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,9.14848,EOP -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,0.07437,IA -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0.07437,IFIE1 -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,4.35467,IR3 -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,29.53934,IR5 -0,,2020,USD,USD,,C,CHF,DT1.3,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,105.89201,MC +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-4.35467,AM +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,42.96811,BOP +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-87.43136,CL +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-48,EA +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,9.14848,EOP +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,0.07437,IA +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0.07437,IFIE1 +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,4.35467,IR3 +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,29.53934,IR5 +0,,2020,USD,USD,L,C,CHF,DT1.3,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,105.89201,MC 0,,2020,USD,USD,,DA,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,6.50034,AM 0,,2020,USD,USD,,DA,CHF,DT1.3,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,-5.15655,BOP 0,,2020,USD,USD,,DA,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-15,CF 0,,2020,USD,USD,,DA,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-13.65621,EOP 0,,2020,USD,USD,,DA,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,6.50034,IR4 0,,2020,USD,USD,,DA,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-6.50034,ISE6 -0,,2020,USD,USD,,L,CHF,DT1.3,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,31.95874,BOP -0,,2020,USD,USD,,L,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-87.43136,CL -0,,2020,USD,USD,,L,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0,EOP -0,,2020,USD,USD,,L,CHF,DT1.3,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,55.45632,EV -0,,2020,USD,USD,,L,CHF,DT1.3,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,0.0163,IA -0,,2020,USD,USD,,L,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0.0163,IFIE1 -0,,2020,USD,USD,,L,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0.0163,IR5 -0,,2020,USD,USD,,L,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0,ISE11 +0,,2020,USD,USD,L,L,CHF,DT1.3,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,31.95874,BOP +0,,2020,USD,USD,L,L,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-87.43136,CL +0,,2020,USD,USD,L,L,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0,EOP +0,,2020,USD,USD,L,L,CHF,DT1.3,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,55.45632,EV +0,,2020,USD,USD,L,L,CHF,DT1.3,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,0.0163,IA +0,,2020,USD,USD,L,L,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0.0163,IFIE1 +0,,2020,USD,USD,L,L,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0.0163,IR5 +0,,2020,USD,USD,L,L,CHF,DT1.3,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0,ISE11 0,,2020,USD,USD,C,RA,CHF,DT1.3,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,29.96755,BOP 0,,2020,USD,USD,C,RA,CHF,DT1.3,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,11.96764,BOP 0,,2020,USD,USD,C,RA,CHF,DT1.3,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,-6,CF @@ -566,30 +566,30 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-24,IR79 0,PR,2020,USD,USD,L,BE,CHF,DT1.4,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,-39.96339,MC 0,PR,2020,USD,USD,L,BE,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,54.86359,OCI1 -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-6.28963,AM -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,42.96811,BOP -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-87.43136,CL -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-42,EA -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,13.21352,EOP -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,0.07437,IA -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0.07437,IFIE1 -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,6.28963,IR3 -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,23.53934,IR5 -0,,2020,USD,USD,,C,CHF,DT1.4,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,105.89201,MC +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-6.28963,AM +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,42.96811,BOP +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-87.43136,CL +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-42,EA +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,13.21352,EOP +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,0.07437,IA +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0.07437,IFIE1 +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,6.28963,IR3 +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,23.53934,IR5 +0,,2020,USD,USD,L,C,CHF,DT1.4,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,105.89201,MC 0,,2020,USD,USD,,DA,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,6.50034,AM 0,,2020,USD,USD,,DA,CHF,DT1.4,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,-5.15655,BOP 0,,2020,USD,USD,,DA,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-15,CF 0,,2020,USD,USD,,DA,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-13.65621,EOP 0,,2020,USD,USD,,DA,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,6.50034,IR4 0,,2020,USD,USD,,DA,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-6.50034,ISE6 -0,,2020,USD,USD,,L,CHF,DT1.4,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,31.95874,BOP -0,,2020,USD,USD,,L,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-87.43136,CL -0,,2020,USD,USD,,L,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0,EOP -0,,2020,USD,USD,,L,CHF,DT1.4,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,55.45632,EV -0,,2020,USD,USD,,L,CHF,DT1.4,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,0.0163,IA -0,,2020,USD,USD,,L,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0.0163,IFIE1 -0,,2020,USD,USD,,L,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0.0163,IR5 -0,,2020,USD,USD,,L,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0,ISE11 +0,,2020,USD,USD,L,L,CHF,DT1.4,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,31.95874,BOP +0,,2020,USD,USD,L,L,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-87.43136,CL +0,,2020,USD,USD,L,L,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0,EOP +0,,2020,USD,USD,L,L,CHF,DT1.4,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,55.45632,EV +0,,2020,USD,USD,L,L,CHF,DT1.4,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,0.0163,IA +0,,2020,USD,USD,L,L,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0.0163,IFIE1 +0,,2020,USD,USD,L,L,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0.0163,IR5 +0,,2020,USD,USD,L,L,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0,ISE11 0,NIC,2020,USD,USD,,OA,CHF,DT1.4,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,8,BOP 0,NIC,2020,USD,USD,,OA,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-8,CF 0,NIC,2020,USD,USD,,OA,CHF,DT1.4,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0,EOP @@ -699,30 +699,30 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-24,IR79 0,PR,2020,USD,USD,L,BE,CHF,DT1.5,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,-39.96339,MC 0,PR,2020,USD,USD,L,BE,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,54.86359,OCI1 -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-6.28963,AM -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,42.96811,BOP -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-87.43136,CL -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-42,EA -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,13.21352,EOP -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,0.07437,IA -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0.07437,IFIE1 -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,6.28963,IR3 -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,23.53934,IR5 -0,,2020,USD,USD,,C,CHF,DT1.5,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,105.89201,MC +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-6.28963,AM +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,42.96811,BOP +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-87.43136,CL +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-42,EA +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,13.21352,EOP +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,0.07437,IA +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0.07437,IFIE1 +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,6.28963,IR3 +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,23.53934,IR5 +0,,2020,USD,USD,L,C,CHF,DT1.5,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,105.89201,MC 0,,2020,USD,USD,,DA,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,6.50034,AM 0,,2020,USD,USD,,DA,CHF,DT1.5,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,-5.15655,BOP 0,,2020,USD,USD,,DA,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-15,CF 0,,2020,USD,USD,,DA,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-13.65621,EOP 0,,2020,USD,USD,,DA,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,6.50034,IR4 0,,2020,USD,USD,,DA,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-6.50034,ISE6 -0,,2020,USD,USD,,L,CHF,DT1.5,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,31.95874,BOP -0,,2020,USD,USD,,L,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-87.43136,CL -0,,2020,USD,USD,,L,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0,EOP -0,,2020,USD,USD,,L,CHF,DT1.5,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,55.45632,EV -0,,2020,USD,USD,,L,CHF,DT1.5,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,0.0163,IA -0,,2020,USD,USD,,L,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0.0163,IFIE1 -0,,2020,USD,USD,,L,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0.0163,IR5 -0,,2020,USD,USD,,L,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0,ISE11 +0,,2020,USD,USD,L,L,CHF,DT1.5,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,31.95874,BOP +0,,2020,USD,USD,L,L,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-87.43136,CL +0,,2020,USD,USD,L,L,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0,EOP +0,,2020,USD,USD,L,L,CHF,DT1.5,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,55.45632,EV +0,,2020,USD,USD,L,L,CHF,DT1.5,P,False,LRC,ANN,N,Default,,DT1,P2,CH,,NotApplicable,BBA,0.0163,IA +0,,2020,USD,USD,L,L,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0.0163,IFIE1 +0,,2020,USD,USD,L,L,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0.0163,IR5 +0,,2020,USD,USD,L,L,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-0,ISE11 0,PR,2020,USD,USD,,OA,CHF,DT1.5,P,False,LRC,ANN,I,Default,,DT1,P2,CH,,NotApplicable,BBA,-10,BOP 0,PR,2020,USD,USD,,OA,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,0,EOP 0,PR,2020,USD,USD,,OA,CHF,DT1.5,P,False,LRC,ANN,C,Default,,DT1,P2,CH,,NotApplicable,BBA,-10,IR1 @@ -826,30 +826,30 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DT2.1,P,False,LRC,ANN,N,,,DT2,P2,CH,,NotApplicable,BBA,-0.01664,IA 0,PR,2020,USD,USD,L,BE,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,96,IR79 0,PR,2020,USD,USD,L,BE,CHF,DT2.1,P,False,LRC,ANN,I,,,DT2,P2,CH,,NotApplicable,BBA,-39.96339,MC -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,-6.28963,AM -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,I,,,DT2,P2,CH,,NotApplicable,BBA,42.96811,BOP -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,-87.43136,CL -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,-42,EA -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,13.21352,EOP -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,I,,,DT2,P2,CH,,NotApplicable,BBA,0.07437,IA -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,-0.07437,IFIE1 -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,6.28963,IR3 -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,23.53934,IR5 -0,,2020,USD,USD,,C,CHF,DT2.1,P,False,LRC,ANN,I,,,DT2,P2,CH,,NotApplicable,BBA,105.89201,MC +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,-6.28963,AM +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,I,,,DT2,P2,CH,,NotApplicable,BBA,42.96811,BOP +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,-87.43136,CL +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,-42,EA +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,13.21352,EOP +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,I,,,DT2,P2,CH,,NotApplicable,BBA,0.07437,IA +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,-0.07437,IFIE1 +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,6.28963,IR3 +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,23.53934,IR5 +0,,2020,USD,USD,L,C,CHF,DT2.1,P,False,LRC,ANN,I,,,DT2,P2,CH,,NotApplicable,BBA,105.89201,MC 0,,2020,USD,USD,,DA,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,6.50034,AM 0,,2020,USD,USD,,DA,CHF,DT2.1,P,False,LRC,ANN,I,,,DT2,P2,CH,,NotApplicable,BBA,-5.15655,BOP 0,,2020,USD,USD,,DA,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,-15,CF 0,,2020,USD,USD,,DA,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,-13.65621,EOP 0,,2020,USD,USD,,DA,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,6.50034,IR4 0,,2020,USD,USD,,DA,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,-6.50034,ISE6 -0,,2020,USD,USD,,L,CHF,DT2.1,P,False,LRC,ANN,N,,,DT2,P2,CH,,NotApplicable,BBA,31.95874,BOP -0,,2020,USD,USD,,L,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,-87.43136,CL -0,,2020,USD,USD,,L,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,0,EOP -0,,2020,USD,USD,,L,CHF,DT2.1,P,False,LRC,ANN,N,,,DT2,P2,CH,,NotApplicable,BBA,55.45632,EV -0,,2020,USD,USD,,L,CHF,DT2.1,P,False,LRC,ANN,N,,,DT2,P2,CH,,NotApplicable,BBA,0.0163,IA -0,,2020,USD,USD,,L,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,0.0163,IFIE1 -0,,2020,USD,USD,,L,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,-0.0163,IR5 -0,,2020,USD,USD,,L,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,-0,ISE11 +0,,2020,USD,USD,L,L,CHF,DT2.1,P,False,LRC,ANN,N,,,DT2,P2,CH,,NotApplicable,BBA,31.95874,BOP +0,,2020,USD,USD,L,L,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,-87.43136,CL +0,,2020,USD,USD,L,L,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,0,EOP +0,,2020,USD,USD,L,L,CHF,DT2.1,P,False,LRC,ANN,N,,,DT2,P2,CH,,NotApplicable,BBA,55.45632,EV +0,,2020,USD,USD,L,L,CHF,DT2.1,P,False,LRC,ANN,N,,,DT2,P2,CH,,NotApplicable,BBA,0.0163,IA +0,,2020,USD,USD,L,L,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,0.0163,IFIE1 +0,,2020,USD,USD,L,L,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,-0.0163,IR5 +0,,2020,USD,USD,L,L,CHF,DT2.1,P,False,LRC,ANN,C,,,DT2,P2,CH,,NotApplicable,BBA,-0,ISE11 0,,2020,USD,USD,C,RA,CHF,DT2.1,P,False,LRC,ANN,I,,,DT2,P2,CH,,NotApplicable,BBA,29.96755,BOP 0,,2020,USD,USD,C,RA,CHF,DT2.1,P,False,LRC,ANN,N,,,DT2,P2,CH,,NotApplicable,BBA,11.96764,BOP 0,,2020,USD,USD,C,RA,CHF,DT2.1,P,False,LRC,ANN,I,,,DT2,P2,CH,,NotApplicable,BBA,-6,CF @@ -958,31 +958,31 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,-24,IR79 0,PR,2020,USD,USD,L,BE,CHF,DT3.1,P,False,LRC,ANN,I,Default,,DT3,P2,CH,,NotApplicable,BBA,-39.96339,MC 0,PR,2020,USD,USD,L,BE,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,399.63393,OCI1 -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,I,Default,,DT3,P2,CH,,NotApplicable,BBA,67.83796,BOP -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,-139.94507,CL -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,-33.8717,EA -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,0,EOP -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,I,Default,,DT3,P2,CH,,NotApplicable,BBA,0.0868,IA -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,-0.0868,IFIE1 -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,67.92476,IR5 -0,,2020,USD,USD,,C,CHF,DT3.1,P,False,LRC,ANN,I,Default,,DT3,P2,CH,,NotApplicable,BBA,105.89201,MC +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,I,Default,,DT3,P2,CH,,NotApplicable,BBA,67.83796,BOP +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,-139.94507,CL +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,-33.8717,EA +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,0,EOP +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,I,Default,,DT3,P2,CH,,NotApplicable,BBA,0.0868,IA +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,-0.0868,IFIE1 +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,67.92476,IR5 +0,,2020,USD,USD,L,C,CHF,DT3.1,P,False,LRC,ANN,I,Default,,DT3,P2,CH,,NotApplicable,BBA,105.89201,MC 0,,2020,USD,USD,,DA,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,20.15655,AM 0,,2020,USD,USD,,DA,CHF,DT3.1,P,False,LRC,ANN,I,Default,,DT3,P2,CH,,NotApplicable,BBA,-5.15655,BOP 0,,2020,USD,USD,,DA,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,-15,CF 0,,2020,USD,USD,,DA,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,0,EOP 0,,2020,USD,USD,,DA,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,20.15655,IR4 0,,2020,USD,USD,,DA,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,-20.15655,ISE6 -0,,2020,USD,USD,,L,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,-8.1283,AM -0,,2020,USD,USD,,L,CHF,DT3.1,P,False,LRC,ANN,N,Default,,DT3,P2,CH,,NotApplicable,BBA,31.95874,BOP -0,,2020,USD,USD,,L,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,-87.43136,CL -0,,2020,USD,USD,,L,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,8.1283,EA -0,,2020,USD,USD,,L,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,0,EOP -0,,2020,USD,USD,,L,CHF,DT3.1,P,False,LRC,ANN,N,Default,,DT3,P2,CH,,NotApplicable,BBA,55.45632,EV -0,,2020,USD,USD,,L,CHF,DT3.1,P,False,LRC,ANN,N,Default,,DT3,P2,CH,,NotApplicable,BBA,0.0163,IA -0,,2020,USD,USD,,L,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,0.0163,IFIE1 -0,,2020,USD,USD,,L,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,-0.0163,IR5 -0,,2020,USD,USD,,L,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,-8.1283,ISE11 -0,,2020,USD,USD,,L,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,8.1283,ISE9 +0,,2020,USD,USD,L,L,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,-8.1283,AM +0,,2020,USD,USD,L,L,CHF,DT3.1,P,False,LRC,ANN,N,Default,,DT3,P2,CH,,NotApplicable,BBA,31.95874,BOP +0,,2020,USD,USD,L,L,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,-87.43136,CL +0,,2020,USD,USD,L,L,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,8.1283,EA +0,,2020,USD,USD,L,L,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,0,EOP +0,,2020,USD,USD,L,L,CHF,DT3.1,P,False,LRC,ANN,N,Default,,DT3,P2,CH,,NotApplicable,BBA,55.45632,EV +0,,2020,USD,USD,L,L,CHF,DT3.1,P,False,LRC,ANN,N,Default,,DT3,P2,CH,,NotApplicable,BBA,0.0163,IA +0,,2020,USD,USD,L,L,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,0.0163,IFIE1 +0,,2020,USD,USD,L,L,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,-0.0163,IR5 +0,,2020,USD,USD,L,L,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,-8.1283,ISE11 +0,,2020,USD,USD,L,L,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,8.1283,ISE9 0,PR,2020,USD,USD,,OA,CHF,DT3.1,P,False,LRC,ANN,I,Default,,DT3,P2,CH,,NotApplicable,BBA,1.5,BOP 0,PR,2020,USD,USD,,OA,CHF,DT3.1,P,False,LRC,ANN,C,Default,,DT3,P2,CH,,NotApplicable,BBA,1.5,EOP 0,,2020,USD,USD,C,RA,CHF,DT3.1,P,False,LRC,ANN,I,Default,,DT3,P2,CH,,NotApplicable,BBA,29.96755,BOP @@ -1088,18 +1088,18 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P2,CH,,NotApplicable,BBA,-26,IR79 0,PR,2020,USD,USD,L,BE,CHF,DT4.1,P,False,LRC,ANN,I,Default,,DT4,P2,CH,,NotApplicable,BBA,-39.96339,MC 0,PR,2020,USD,USD,L,BE,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P2,CH,,NotApplicable,BBA,-29.08049,OCI1 -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P2,CH,,NotApplicable,BBA,-34.00598,AM -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,I,Default,,DT4,P2,CH,,NotApplicable,BBA,42.96811,BOP -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,N,Default,,DT4,P2,CH,,NotApplicable,BBA,8.00465,BOP -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P2,CH,,NotApplicable,BBA,-50,EA -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P2,CH,,NotApplicable,BBA,71.44125,EOP -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,N,Default,,DT4,P2,CH,,NotApplicable,BBA,-1.49226,EV -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,I,Default,,DT4,P2,CH,,NotApplicable,BBA,0.07437,IA -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,N,Default,,DT4,P2,CH,,NotApplicable,BBA,0.00034,IA -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P2,CH,,NotApplicable,BBA,-0.07471,IFIE1 -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P2,CH,,NotApplicable,BBA,34.00598,IR3 -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P2,CH,,NotApplicable,BBA,-62.4044,IR5 -0,,2020,USD,USD,,C,CHF,DT4.1,P,False,LRC,ANN,I,Default,,DT4,P2,CH,,NotApplicable,BBA,105.89201,MC +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P2,CH,,NotApplicable,BBA,-34.00598,AM +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,I,Default,,DT4,P2,CH,,NotApplicable,BBA,42.96811,BOP +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,N,Default,,DT4,P2,CH,,NotApplicable,BBA,8.00465,BOP +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P2,CH,,NotApplicable,BBA,-50,EA +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P2,CH,,NotApplicable,BBA,71.44125,EOP +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,N,Default,,DT4,P2,CH,,NotApplicable,BBA,-1.49226,EV +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,I,Default,,DT4,P2,CH,,NotApplicable,BBA,0.07437,IA +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,N,Default,,DT4,P2,CH,,NotApplicable,BBA,0.00034,IA +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P2,CH,,NotApplicable,BBA,-0.07471,IFIE1 +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P2,CH,,NotApplicable,BBA,34.00598,IR3 +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P2,CH,,NotApplicable,BBA,-62.4044,IR5 +0,,2020,USD,USD,L,C,CHF,DT4.1,P,False,LRC,ANN,I,Default,,DT4,P2,CH,,NotApplicable,BBA,105.89201,MC 0,,2020,USD,USD,,DA,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P2,CH,,NotApplicable,BBA,6.50034,AM 0,,2020,USD,USD,,DA,CHF,DT4.1,P,False,LRC,ANN,I,Default,,DT4,P2,CH,,NotApplicable,BBA,-5.15655,BOP 0,,2020,USD,USD,,DA,CHF,DT4.1,P,False,LRC,ANN,C,Default,,DT4,P2,CH,,NotApplicable,BBA,-15,CF @@ -1201,23 +1201,23 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,27.53161,ISE10 0,PR,2020,USD,USD,L,BE,CHF,DTR1.1,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,19.9817,MC 0,PR,2020,USD,USD,L,BE,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.4318,OCI1 -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,10.75385,AM -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-24.07616,BOP -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,15.97745,BOP -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-22.59217,EOP -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,27.72711,EV -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.03848,IA -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.00815,IA -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.03033,IFIE1 -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,9.23953,ISE10 -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-10.75385,ISE7 -0,,2020,USD,USD,,C,CHF,DTR1.1,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-52.94408,MC -0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-15.97937,BOP -0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.71463,CL -0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP -0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.72711,EV -0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00815,IA -0,,2020,USD,USD,,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0,ISE11 +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,10.75385,AM +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-24.07616,BOP +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,15.97745,BOP +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-22.59217,EOP +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,27.72711,EV +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.03848,IA +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.00815,IA +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.03033,IFIE1 +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,9.23953,ISE10 +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-10.75385,ISE7 +0,,2020,USD,USD,L,C,CHF,DTR1.1,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-52.94408,MC +0,,2020,USD,USD,L,LR,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-15.97937,BOP +0,,2020,USD,USD,L,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.71463,CL +0,,2020,USD,USD,L,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP +0,,2020,USD,USD,L,LR,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.72711,EV +0,,2020,USD,USD,L,LR,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00815,IA +0,,2020,USD,USD,L,LR,CHF,DTR1.1,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0,ISE11 0,,2020,USD,USD,C,RA,CHF,DTR1.1,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-14.98378,BOP 0,,2020,USD,USD,C,RA,CHF,DTR1.1,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-5.98382,BOP 0,,2020,USD,USD,C,RA,CHF,DTR1.1,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,3,CF @@ -1321,23 +1321,23 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,27.53161,ISE10 0,PR,2020,USD,USD,L,BE,CHF,DTR1.3,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,19.9817,MC 0,PR,2020,USD,USD,L,BE,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.4318,OCI1 -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,10.75385,AM -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-24.07616,BOP -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,15.97745,BOP -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-22.59217,EOP -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,27.72711,EV -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.03848,IA -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.00815,IA -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.03033,IFIE1 -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,9.23953,ISE10 -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-10.75385,ISE7 -0,,2020,USD,USD,,C,CHF,DTR1.3,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-52.94408,MC -0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-15.97937,BOP -0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.71463,CL -0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP -0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.72711,EV -0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00815,IA -0,,2020,USD,USD,,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0,ISE11 +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,10.75385,AM +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-24.07616,BOP +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,15.97745,BOP +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-22.59217,EOP +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,27.72711,EV +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.03848,IA +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.00815,IA +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.03033,IFIE1 +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,9.23953,ISE10 +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-10.75385,ISE7 +0,,2020,USD,USD,L,C,CHF,DTR1.3,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-52.94408,MC +0,,2020,USD,USD,L,LR,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-15.97937,BOP +0,,2020,USD,USD,L,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.71463,CL +0,,2020,USD,USD,L,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP +0,,2020,USD,USD,L,LR,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.72711,EV +0,,2020,USD,USD,L,LR,CHF,DTR1.3,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00815,IA +0,,2020,USD,USD,L,LR,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0,ISE11 0,NIC,2020,USD,USD,,OA,CHF,DTR1.3,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-2.5,BOP 0,NIC,2020,USD,USD,,OA,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP 0,NIC,2020,USD,USD,,OA,CHF,DTR1.3,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-2.5,ISE2 @@ -1440,23 +1440,23 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,27.53161,ISE10 0,PR,2020,USD,USD,L,BE,CHF,DTR1.4,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,19.9817,MC 0,PR,2020,USD,USD,L,BE,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.4318,OCI1 -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,10.75385,AM -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-24.07616,BOP -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,15.97745,BOP -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-22.59217,EOP -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,27.72711,EV -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.03848,IA -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.00815,IA -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.03033,IFIE1 -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,9.23953,ISE10 -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-10.75385,ISE7 -0,,2020,USD,USD,,C,CHF,DTR1.4,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-52.94408,MC -0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-15.97937,BOP -0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.71463,CL -0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP -0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.72711,EV -0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00815,IA -0,,2020,USD,USD,,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0,ISE11 +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,10.75385,AM +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-24.07616,BOP +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,15.97745,BOP +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-22.59217,EOP +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,27.72711,EV +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.03848,IA +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.00815,IA +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0.03033,IFIE1 +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,9.23953,ISE10 +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-10.75385,ISE7 +0,,2020,USD,USD,L,C,CHF,DTR1.4,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-52.94408,MC +0,,2020,USD,USD,L,LR,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-15.97937,BOP +0,,2020,USD,USD,L,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,43.71463,CL +0,,2020,USD,USD,L,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP +0,,2020,USD,USD,L,LR,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-27.72711,EV +0,,2020,USD,USD,L,LR,CHF,DTR1.4,P,True,LRC,ANN,N,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0.00815,IA +0,,2020,USD,USD,L,LR,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-0,ISE11 0,NIC,2020,USD,USD,,OA,CHF,DTR1.4,P,True,LRC,ANN,I,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-10,BOP 0,NIC,2020,USD,USD,,OA,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,0,EOP 0,NIC,2020,USD,USD,,OA,CHF,DTR1.4,P,True,LRC,ANN,C,Default,PT1,DTR1,P2,CH,,NotApplicable,BBA,-10,ISE2 @@ -1553,23 +1553,23 @@ AccidentYear,AmountType,AnnualCohort,ContractualCurrency,Currency,EconomicBasis, 0,PR,2020,USD,USD,L,BE,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,0.0915,IA 0,PR,2020,USD,USD,L,BE,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,0.00832,IA 0,PR,2020,USD,USD,L,BE,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,19.9817,MC -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,10.75385,AM -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-24.07616,BOP -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,15.97745,BOP -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-22.59217,EOP -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,27.72711,EV -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-0.03848,IA -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,0.00815,IA -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,0.03033,IFIE1 -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,9.23953,ISE10 -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-10.75385,ISE7 -0,,2020,USD,USD,,C,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-52.94408,MC -0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-15.97937,BOP -0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,43.71463,CL -0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,0,EOP -0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-27.72711,EV -0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-0.00815,IA -0,,2020,USD,USD,,LR,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-0,ISE11 +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,10.75385,AM +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-24.07616,BOP +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,15.97745,BOP +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-22.59217,EOP +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,27.72711,EV +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-0.03848,IA +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,0.00815,IA +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,0.03033,IFIE1 +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,9.23953,ISE10 +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-10.75385,ISE7 +0,,2020,USD,USD,L,C,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-52.94408,MC +0,,2020,USD,USD,L,LR,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-15.97937,BOP +0,,2020,USD,USD,L,LR,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,43.71463,CL +0,,2020,USD,USD,L,LR,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,0,EOP +0,,2020,USD,USD,L,LR,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-27.72711,EV +0,,2020,USD,USD,L,LR,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-0.00815,IA +0,,2020,USD,USD,L,LR,CHF,DTR2.1,P,True,LRC,ANN,C,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-0,ISE11 0,,2020,USD,USD,C,RA,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-14.98378,BOP 0,,2020,USD,USD,C,RA,CHF,DTR2.1,P,True,LRC,ANN,N,,PT1,DTR2,P2,CH,,NotApplicable,BBA,-5.98382,BOP 0,,2020,USD,USD,C,RA,CHF,DTR2.1,P,True,LRC,ANN,I,,PT1,DTR2,P2,CH,,NotApplicable,BBA,3,CF diff --git a/ifrs17/Import/5ImportScope-ToIfrsVar.ipynb b/ifrs17/Import/5ImportScope-ToIfrsVar.ipynb index aa0e9195..01f3c41c 100644 --- a/ifrs17/Import/5ImportScope-ToIfrsVar.ipynb +++ b/ifrs17/Import/5ImportScope-ToIfrsVar.ipynb @@ -455,14 +455,14 @@ "source": [ "public interface TmToIfrsVariable: IScope", "\n{", - "\n private string EconomicBasis => GetStorage().GetEconomicBasisDriver(Identity.DataNode);", + "\n private string economicBasis => Identity.ValuationApproach == ValuationApproaches.VFA ? EconomicBases.C : EconomicBases.L;", "\n private IEnumerable amountTypesForTm =>GetScope((Identity.DataNode, EstimateTypes.C)).Values;", "\n private bool hasTechnicalMargin => GetStorage().GetRawVariables(Identity.DataNode).Any(x => x.EstimateType == EstimateTypes.RA || ", "\n (x.EstimateType == EstimateTypes.BE && amountTypesForTm.Contains(x.AmountType))) || ", "\n GetStorage().GetIfrsVariables(Identity.DataNode).Any(x => GetTechnicalMarginEstimateType().Contains(x.EstimateType));", "\n", "\n IEnumerable AmortizationFactor => Identity.AocType == AocTypes.AM", - "\n ? GetScope((Identity, AmountTypes.CU, 0), o => o.WithContext(EconomicBasis))", + "\n ? GetScope((Identity, AmountTypes.CU, 0), o => o.WithContext(economicBasis))", "\n .RepeatOnce()", "\n .Select(x => new IfrsVariable{ EstimateType = x.EstimateType,", "\n DataNode = x.Identity.Id.DataNode,", @@ -482,6 +482,7 @@ "\n DataNode = x.Identity.DataNode,", "\n AocType = x.Identity.AocType,", "\n Novelty = x.Identity.Novelty,", + "\n EconomicBasis = economicBasis,", "\n Values = SetProjectionValue(x.Value, x.Identity.ProjectionPeriod),", "\n Partition = GetStorage().TargetPartition", "\n });", @@ -494,6 +495,7 @@ "\n DataNode = x.Identity.DataNode,", "\n AocType = x.Identity.AocType,", "\n Novelty = x.Identity.Novelty,", + "\n EconomicBasis = economicBasis,", "\n Values = SetProjectionValue(x.Value, x.Identity.ProjectionPeriod),", "\n Partition = GetStorage().TargetPartition", "\n })", @@ -502,6 +504,7 @@ "\n DataNode = x.Identity.DataNode,", "\n AocType = x.Identity.AocType,", "\n Novelty = x.Identity.Novelty,", + "\n EconomicBasis = economicBasis,", "\n Values = SetProjectionValue(x.Value, x.Identity.ProjectionPeriod),", "\n Partition = GetStorage().TargetPartition", "\n });", From 6df610961ab2c7783765414126f73d72067e05a6 Mon Sep 17 00:00:00 2001 From: Davide Colleoni Date: Mon, 3 Jul 2023 12:03:22 +0200 Subject: [PATCH 22/24] rephrase --- ifrs17/Constants/Validations.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ifrs17/Constants/Validations.ipynb b/ifrs17/Constants/Validations.ipynb index c7630623..281e2d8a 100644 --- a/ifrs17/Constants/Validations.ipynb +++ b/ifrs17/Constants/Validations.ipynb @@ -165,7 +165,7 @@ "\n // Storage", "\n (Error.DataNodeNotFound , 1) => $\"DataNode {s[0]} not found.\",", "\n (Error.PartnerNotFound , 1) => $\"Partner not found for DataNode {s[0]}.\",", - "\n (Error.PeriodNotFound , 1) => $\"Current nor Previous Period not found for given period {s[0]}.\",", + "\n (Error.PeriodNotFound , 1) => $\"Invalid Period {s[0]} used during calculation. Allowed values are Current Period (0) and Previous Period (-1).\",", "\n (Error.RatingNotFound , 1) => $\"Rating not found for Partner {s[0]}.\",", "\n (Error.CreditDefaultRateNotFound , 1) => $\"Credit Default Rate not found for rating {s[0]}.\",", "\n (Error.MissingPremiumAllocation , 1) => $\"Premium Allocation Rate not found for Group of Contract {s[0]}.\", // TODO: this is now a warning to be produced by a validation in the importers (default is 1)", From 05aa3f00ce6ddd69c0f076e41d9f1894ee2f5da0 Mon Sep 17 00:00:00 2001 From: Davide Colleoni Date: Mon, 3 Jul 2023 14:05:17 +0200 Subject: [PATCH 23/24] comments from pr --- .../EvaluateImportScopes.ipynb | 96 ++++++------------- ifrs17-template/Report/Reports.ipynb | 33 +++---- .../Import/4ImportScope-TechnicalMargin.ipynb | 2 +- ifrs17/Utils/Extensions.ipynb | 7 +- 4 files changed, 44 insertions(+), 94 deletions(-) diff --git a/ifrs17-template/Import/InteractWithImportScopes/EvaluateImportScopes.ipynb b/ifrs17-template/Import/InteractWithImportScopes/EvaluateImportScopes.ipynb index 5b0b1a8d..aa205240 100644 --- a/ifrs17-template/Import/InteractWithImportScopes/EvaluateImportScopes.ipynb +++ b/ifrs17-template/Import/InteractWithImportScopes/EvaluateImportScopes.ipynb @@ -88,21 +88,7 @@ { "cell_type": "code", "source": [ - "await Import.FromFile(\"../../Files/TransactionalData/Openings_FR_2020_12.csv\")", - "\n .WithFormat(ImportFormats.Opening)", - "\n .WithTarget(DataSource)", - "\n .WithActivityLog()", - "\n .ExecuteAsync()" - ], - "metadata": {}, - "execution_count": 0, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "", - "\nawait Import.FromFile(\"../../Files/TransactionalData/NominalCashflows_FR_2020_12.csv\")", + "await Import.FromFile(\"../../Files/TransactionalData/NominalCashflowsPAA_CH_2020_12.csv\")", "\n .WithFormat(ImportFormats.Cashflow)", "\n .WithTarget(DataSource)", "\n .WithActivityLog()", @@ -133,7 +119,7 @@ { "cell_type": "code", "source": [ - "var reportingNode = \"FR\";", + "var reportingNode = \"CH\";", "\nvar year = 2020;", "\nvar month = 12;", "\nvar importFormat = ImportFormats.Cashflow;", @@ -225,18 +211,7 @@ { "cell_type": "code", "source": [ - "var idByDn = identities.ToDictionaryGrouped(x => x.DataNode, x => x.ToArray());", - "\n//idByDn" - ], - "metadata": {}, - "execution_count": 0, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "var riIds = idByDn[\"EY59R.2\"];", - "\n//riIds" + "identities.First()" ], "metadata": {}, "execution_count": 0, @@ -245,8 +220,7 @@ { "cell_type": "code", "source": [ - "//storage.GetReinsuranceCoverage(riIds.First(), \"EY59R.2\")", - "\n" + "var idByDn = identities.ToDictionaryGrouped(x => x.DataNode, x => x.ToArray());" ], "metadata": {}, "execution_count": 0, @@ -255,7 +229,7 @@ { "cell_type": "code", "source": [ - "var ivs = Scopes.ForIdentities(riIds, storage).ToScopes().SelectMany(x => x.CalculatedIfrsVariables).ToArray();" + "var ivs = Scopes.ForIdentities(identities, storage).ToScopes().SelectMany(x => x.CalculatedIfrsVariables).ToArray();" ], "metadata": {}, "execution_count": 0, @@ -273,8 +247,7 @@ { "cell_type": "code", "source": [ - "Scopes.ForIdentities(riIds.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes()", - "\n.Select(x => new {x.Identity, x.loReCoBoundaryValue, x.aggregatedLoReCoBoundary, x.reinsuranceCsm, x.AggregatedValue, x.Value})" + "var ivs = Scopes.ForIdentities(identities.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes().SelectMany(x => x.PvLocked.Concat(x.PvCurrent)).ToArray();" ], "metadata": {}, "execution_count": 0, @@ -283,10 +256,7 @@ { "cell_type": "code", "source": [ - "var loreco = Scopes.ForIdentities(riIds.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes()", - "\n.Where(x => x.Value != 0)", - "\n.Select(x => (x.Identity, x.Value))", - "\n.ToArray();" + "var ivs = Scopes.ForIdentities(identities.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes().SelectMany(x => x.CumulatedNominal).ToArray();" ], "metadata": {}, "execution_count": 0, @@ -295,10 +265,7 @@ { "cell_type": "code", "source": [ - "var csm = Scopes.ForIdentities(riIds.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes()", - "\n.Where(x => x.Value != 0)", - "\n.Select(x => (x.Identity, x.Value))", - "\n.ToArray();" + "var ivs = Scopes.ForIdentities(identities.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes().SelectMany(x => x.RaCurrent.Concat(x.RaLocked)).ToArray();" ], "metadata": {}, "execution_count": 0, @@ -307,7 +274,7 @@ { "cell_type": "code", "source": [ - "csm" + "var ivs = Scopes.ForIdentities(identities.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes().SelectMany(x => x.Actual.Concat(x.AdvanceActual).Concat(x.OverdueActual)).ToArray();" ], "metadata": {}, "execution_count": 0, @@ -316,7 +283,7 @@ { "cell_type": "code", "source": [ - "loreco" + "var ivs = Scopes.ForIdentities(identities.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes().SelectMany(x => x.Deferrable).ToArray();" ], "metadata": {}, "execution_count": 0, @@ -325,7 +292,7 @@ { "cell_type": "code", "source": [ - "" + "var ivs = Scopes.ForIdentities(identities.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes().SelectMany(x => x.DeferrableAmFactor).ToArray();" ], "metadata": {}, "execution_count": 0, @@ -334,7 +301,7 @@ { "cell_type": "code", "source": [ - "" + "var ivs = Scopes.ForIdentities(identities.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes().SelectMany(x => x.BeEAForPremium.Concat(x.ActEAForPremium)).ToArray();" ], "metadata": {}, "execution_count": 0, @@ -343,7 +310,7 @@ { "cell_type": "code", "source": [ - "" + "var ivs = Scopes.ForIdentities(identities.Select(id => id with {ProjectionPeriod = projection}), storage).ToScopes().SelectMany(x => x.AmortizationFactor.Concat(x.Csms).Concat(x.Loss)).ToArray();" ], "metadata": {}, "execution_count": 0, @@ -359,27 +326,9 @@ "outputs": [] }, { - "cell_type": "code", - "source": [ - "" - ], - "metadata": {}, - "execution_count": 0, - "outputs": [] - }, - { - "cell_type": "code", - "source": [ - "" - ], - "metadata": {}, - "execution_count": 0, - "outputs": [] - }, - { - "cell_type": "code", + "cell_type": "markdown", "source": [ - "" + "# Temporary test of DAC for PAA" ], "metadata": {}, "execution_count": 0, @@ -388,7 +337,16 @@ { "cell_type": "code", "source": [ - "" + "var iv = Enumerable.Range(0,5).SelectMany(p=>", + "\n Scopes.ForIdentities(identities.Select(id => id with {ProjectionPeriod=p}), storage)", + "\n .ToScopes().SelectMany(x => x.Deferrable))", + "\n.AggregateProjections().Where(x => x.Values.Any(v => Math.Abs(v) > Precision ))", + "\n.ToArray();", + "\n", + "\nvar eops= iv.Where(x => x.AocType == \"EOP\");", + "\nvar ams = iv.Where(x => x.AocType == \"AM\" && x.EstimateType == \"DA\");", + "\n", + "\niv" ], "metadata": {}, "execution_count": 0, @@ -397,7 +355,9 @@ { "cell_type": "code", "source": [ - "" + "//Testing", + "\n(Math.Abs(eops.Single(x => x.AccidentYear == 0).Values.First() - 647.5)< Precision, Math.Abs(eops.Single(x => x.AccidentYear == 2).Values.First() - 918.125)< Precision, ", + "\nMath.Abs(ams.Single(x => x.AccidentYear == 0).Values.First() - -352.5)< Precision, Math.Abs(ams.Single(x => x.AccidentYear == 2).Values.First() - -381.87499999999994)< Precision)" ], "metadata": {}, "execution_count": 0, diff --git a/ifrs17-template/Report/Reports.ipynb b/ifrs17-template/Report/Reports.ipynb index 39bc244f..fb4086a5 100644 --- a/ifrs17-template/Report/Reports.ipynb +++ b/ifrs17-template/Report/Reports.ipynb @@ -58,7 +58,7 @@ { "cell_type": "code", "source": [ - "#!import \"../Import/CloseImportTemplate\"" + "#!eval-notebook \"../Import/CloseImportTemplate\"" ], "metadata": {}, "execution_count": 0, @@ -102,17 +102,6 @@ "execution_count": 0, "outputs": [] }, - { - "cell_type": "code", - "source": [ - "#!eval-notebook \"../../ifrs17/Report/ReportScopes\"", - "\n#!eval-notebook \"../../ifrs17/Report/ReportMutableScopes\"", - "\nvar ifrs17 = new Ifrs17(Workspace, Scopes, Report, Export);" - ], - "metadata": {}, - "execution_count": 0, - "outputs": [] - }, { "cell_type": "code", "source": [ @@ -121,8 +110,8 @@ "\npv.ReportingPeriod = reportingPeriod;", "\npv.CurrencyType = CurrencyType.Contractual;", "\npv.ColumnSlices = new string[]{};//\"GroupOfContract\", \"AmountType\", \"Scenario\", \"ServicePeriod\"", - "\npv.Scenario = \"All\"; //\"Delta\";", - "\npv.DataFilter = new [] {(\"EconomicBasis\", \"L\") }; //new [] {(\"GroupOfContract\", \"DT1.2\"),(\"LiabilityType\", \"LIC\") };", + "\npv.Scenario = null; //\"All\";", + "\npv.DataFilter = null; //new [] {(\"GroupOfContract\", \"DT1.2\"),(\"LiabilityType\", \"LIC\") };", "\n(await pv.ToReportAsync)" ], "metadata": {}, @@ -258,8 +247,8 @@ "var fulfillmentCashflows = ifrs17.FulfillmentCashflows;", "\nfulfillmentCashflows.ReportingNode = reportingNode;", "\nfulfillmentCashflows.ReportingPeriod = reportingPeriod;", - "\nfulfillmentCashflows.ColumnSlices = new string[]{\"EstimateType\"};//\"EstimateType\"", - "\nfulfillmentCashflows.DataFilter = new [] {(\"GroupOfContract\", \"DTR1.1\")};// new [] {(\"GroupOfContract\", \"DT1.1\")};", + "\nfulfillmentCashflows.ColumnSlices = new string[]{};//\"EstimateType\"", + "\nfulfillmentCashflows.DataFilter = null;// new [] {(\"GroupOfContract\", \"DT1.1\")};", "\n(await fulfillmentCashflows.ToReportAsync)" ], "metadata": {}, @@ -309,8 +298,8 @@ "var technicalMargins = ifrs17.TechnicalMargins;", "\ntechnicalMargins.ReportingNode = reportingNode;", "\ntechnicalMargins.ReportingPeriod = reportingPeriod;", - "\ntechnicalMargins.ColumnSlices = new string[]{\"GroupOfContract\"};//\"GroupOfContract\", \"AmountType\"", - "\ntechnicalMargins.DataFilter = new [] {(\"GroupOfContract\", \"DTR1.1\")}; //new [] {(\"GroupOfContract\", \"DT1.1\")};", + "\ntechnicalMargins.ColumnSlices = new string[]{};//\"GroupOfContract\", \"AmountType\"", + "\ntechnicalMargins.DataFilter = null; //new [] {(\"GroupOfContract\", \"DT1.1\")};", "\n(await technicalMargins.ToReportAsync)" ], "metadata": {}, @@ -336,8 +325,8 @@ "var allocatedTechnicalMargins = ifrs17.AllocatedTechnicalMargins;", "\nallocatedTechnicalMargins.ReportingNode = reportingNode;", "\nallocatedTechnicalMargins.ReportingPeriod = reportingPeriod;", - "\nallocatedTechnicalMargins.ColumnSlices = new string[]{\"GroupOfContract\", \"EstimateType\"};//\"GroupOfContract\", \"EstimateType\"", - "\nallocatedTechnicalMargins.DataFilter = new [] {(\"GroupOfContract\", \"DTR1.1\")}; //new [] {(\"GroupOfContract\", \"DT1.1\")};", + "\nallocatedTechnicalMargins.ColumnSlices = new string[]{};//\"GroupOfContract\", \"EstimateType\"", + "\nallocatedTechnicalMargins.DataFilter = null; //new [] {(\"GroupOfContract\", \"DT1.1\")};", "\n(await allocatedTechnicalMargins.ToReportAsync)" ], "metadata": {}, @@ -464,7 +453,7 @@ "\nfinancialPerformance.ReportingNode = reportingNode;", "\nfinancialPerformance.ReportingPeriod = reportingPeriod;", "\nfinancialPerformance.ColumnSlices = new string[]{};//\"GroupOfContract\"", - "\nfinancialPerformance.DataFilter = null; //new [] {(\"GroupOfContract\", \"DTR1.1\")};", + "\nfinancialPerformance.DataFilter = null; //new [] {(\"GroupOfContract\", \"DT1.1\")};", "\n(await financialPerformance.ToReportAsync) with {GroupDefaultExpanded = 3}" ], "metadata": {}, @@ -489,7 +478,7 @@ "\nfinancialPerformanceAlternative.ReportingNode = reportingNode;", "\nfinancialPerformanceAlternative.ReportingPeriod = reportingPeriod;", "\nfinancialPerformanceAlternative.ColumnSlices = new string[]{};//\"GroupOfContract\"", - "\nfinancialPerformanceAlternative.DataFilter = null; //new [] {(\"GroupOfContract\", \"DT1.1\")};", + "\nfinancialPerformanceAlternative.DataFilter = null;//new [] {(\"GroupOfContract\", \"DTR1.1\")}; //new [] {(\"GroupOfContract\", \"DT1.1\")};", "\n(await financialPerformanceAlternative.ToReportAsync) with {GroupDefaultExpanded = 3}" ], "metadata": {}, diff --git a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb index 0c12fafe..a82b16bd 100644 --- a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb +++ b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb @@ -633,7 +633,7 @@ "source": [ "# Loss Recovery Component", "\n", - "\nIn the case of Reinsurance a Loss Recovery Component is computed when the underlying gross business opens a Loss component. ", + "\nIn the case of Reinsurance a Loss Recovery Component is computed when the underlying gross LRC business opens a Loss component. If the underlying gross business is LIC, there is no Loss Recovery Component, as there is also no Loss Component in the gross side.", "\nBy definition the sign of the LoReCo aggregated along the AoC Chain must be negative, to ensure the recovery of the losses from the side of the Insurer. ", "\nLoss Recovery Component uses the notion of Loss Recovery Component Boundary ([LoReCo Boundary](#loreco-boundary)). This quantity with the sign inverted defines the lower limit of the LoReCo. ", "\nThe amount allocated to the Reinsurance LoReCo follows the computed Technical Margin computed for GRIC as described in [Technical Margin](#technical-margin).", diff --git a/ifrs17/Utils/Extensions.ipynb b/ifrs17/Utils/Extensions.ipynb index 358aecba..483b9c2f 100644 --- a/ifrs17/Utils/Extensions.ipynb +++ b/ifrs17/Utils/Extensions.ipynb @@ -177,9 +177,10 @@ "public static double CheckStringForExponentialAndConvertToDouble (this string s)", "\n{ ", "\n if (s == null) return default;", - "\n if (double.TryParse(s, NumberStyles.Number | NumberStyles.Float, CultureInfo.InvariantCulture, out var doubleValue)) return doubleValue;", - "\n ApplicationMessage.Log(Error.ParsingInvalidOrScientificValue, s);", - "\n return default; ", + "\n if (double.TryParse(s, NumberStyles.Number, CultureInfo.InvariantCulture, out var doubleValue)) ", + "\n return doubleValue;", + "\n ApplicationMessage.Log(Error.ParsingInvalidOrScientificValue, s); ", + "\n return default;", "\n}" ], "metadata": {}, From 37f7741fe71f02926694c21aec477371f3a21788 Mon Sep 17 00:00:00 2001 From: Davide Colleoni Date: Tue, 4 Jul 2023 07:58:37 +0200 Subject: [PATCH 24/24] GetUnderlyingIdentity --- ifrs17/Constants/Validations.ipynb | 4 +++- ifrs17/Import/4ImportScope-TechnicalMargin.ipynb | 2 +- ifrs17/Import/ImportStorage.ipynb | 11 +++++++++-- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ifrs17/Constants/Validations.ipynb b/ifrs17/Constants/Validations.ipynb index 281e2d8a..e759d396 100644 --- a/ifrs17/Constants/Validations.ipynb +++ b/ifrs17/Constants/Validations.ipynb @@ -80,7 +80,7 @@ "\n ReinsuranceCoverageDataNode, DuplicateInterDataNode, DuplicateSingleDataNode, InvalidDataNode, InvalidDataNodeForOpening, InvalidCashFlowPeriodicity, MissingInterpolationMethod, InvalidInterpolationMethod, InvalidEconomicBasisDriver, InvalidReleasePattern,", "\n // Storage", "\n DataNodeNotFound, PartnerNotFound, PeriodNotFound, RatingNotFound, CreditDefaultRateNotFound, MissingPremiumAllocation, ReinsuranceCoverage, ", - "\n YieldCurveNotFound, YieldCurvePeriodNotApplicable, EconomicBasisNotFound, AccountingVariableTypeNotFound,", + "\n YieldCurveNotFound, YieldCurvePeriodNotApplicable, EconomicBasisNotFound, AccountingVariableTypeNotFound, InvalidGric, InvalidGic, ", "\n // Scopes", "\n NotSupportedAocStepReference, MultipleEoP,", "\n // Data completeness", @@ -174,6 +174,8 @@ "\n (Error.YieldCurvePeriodNotApplicable , 2) => $\"YieldCurve period NotApplicable not valid for AoC Step with AoC Type {s[0]} and Novelty {s[1]}.\",", "\n (Error.EconomicBasisNotFound , 1) => $\"EconomicBasis not valid for DataNode {s[0]}.\",", "\n (Error.AccountingVariableTypeNotFound , 1) => $\"AccountingVariableType {s[0]} not found.\",", + "\n (Error.InvalidGric , 1) => $\"Invalid Group of Reinsurance Contract {s[0]} has been requested during calculation.\",", + "\n (Error.InvalidGic , 1) => $\"Invalid Group of Insurance Contract {s[0]} has been requested during calculation.\",", "\n // Scopes", "\n (Error.NotSupportedAocStepReference , 1) => $\"Unsupported reference AoC Step for AoC Type {s[0]}.\",", "\n (Error.MultipleEoP , 0) => $\"Closing Balance for both Csm and Lc are computed.\",", diff --git a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb index a82b16bd..eaec870f 100644 --- a/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb +++ b/ifrs17/Import/4ImportScope-TechnicalMargin.ipynb @@ -671,7 +671,7 @@ "\n{", "\n private IEnumerable underlyingGic => GetStorage().GetUnderlyingGic(Identity, LiabilityTypes.LRC);", "\n ", - "\n double Value => underlyingGic.Sum(gic => GetStorage().GetReinsuranceCoverage(Identity, gic) * GetScope(Identity with {DataNode = gic}).Value);", + "\n double Value => underlyingGic.Sum(gic => GetStorage().GetReinsuranceCoverage(Identity, gic) * GetScope(GetStorage().GetUnderlyingIdentity(Identity, gic)).Value);", "\n ", "\n double AggregatedValue => underlyingGic.Sum(gic => GetStorage().GetReinsuranceCoverage(Identity, gic) * ", "\n GetScope((Identity, InputSource.Cashflow)).Values", diff --git a/ifrs17/Import/ImportStorage.ipynb b/ifrs17/Import/ImportStorage.ipynb index a06abbfc..e4df433c 100644 --- a/ifrs17/Import/ImportStorage.ipynb +++ b/ifrs17/Import/ImportStorage.ipynb @@ -384,13 +384,13 @@ "\n { ", "\n var period = GetCreditDefaultRiskPeriod(identity) == PeriodType.BeginningOfPeriod ? PreviousPeriod : CurrentPeriod;", "\n // if Partner == Internal then return 0;", - "\n if(!CurrentPartnerRating.TryGetValue(dataNodeData.Partner, out var currentRating)) ApplicationMessage.Log(Error.RatingNotFound, dataNodeData.Partner);", + "\n if(!CurrentPartnerRating.TryGetValue(dataNodeData.Partner, out var currentRating)) ApplicationMessage.Log(Error.RatingNotFound, dataNodeData.Partner);", "\n if(!CurrentCreditDefaultRates.TryGetValue(currentRating[period].CreditRiskRating, out var currentRate)) ApplicationMessage.Log(Error.CreditDefaultRateNotFound, currentRating[period].CreditRiskRating);", "\n rate = currentRate[period].Values[0];", "\n }", "\n else", "\n {", - "\n if(!LockedInPartnerRating[dataNodeData.Year].TryGetValue(dataNodeData.Partner, out var lockedRating)) ApplicationMessage.Log(Error.RatingNotFound, dataNodeData.Partner);", + "\n if(!LockedInPartnerRating[dataNodeData.Year].TryGetValue(dataNodeData.Partner, out var lockedRating)) ApplicationMessage.Log(Error.RatingNotFound, dataNodeData.Partner);", "\n if(!LockedInCreditDefaultRates[dataNodeData.Year].TryGetValue(lockedRating.CreditRiskRating, out var lockedRate)) ApplicationMessage.Log(Error.CreditDefaultRateNotFound, lockedRating.CreditRiskRating);", "\n rate = lockedRate.Values[0];", "\n }", @@ -439,6 +439,13 @@ "\n ? interDataNodeParameters[targetPeriod].FirstOrDefault(x => x.DataNode == gic || x.LinkedDataNode == gic).ReinsuranceCoverage", "\n : (double)ApplicationMessage.Log(Error.ReinsuranceCoverage, id.DataNode);", "\n }", + "\n", + "\n public ImportIdentity GetUnderlyingIdentity(ImportIdentity id, string gic) {", + "\n if(!(DataNodeDataBySystemName.TryGetValue(id.DataNode, out var gricData) && gricData.IsReinsurance)) ApplicationMessage.Log(Error.InvalidGric, id.DataNode);", + "\n if(!DataNodeDataBySystemName.TryGetValue(gic, out var gicData)) ApplicationMessage.Log(Error.InvalidGic, gic);", + "\n ", + "\n return id with {DataNode = gic, ValuationApproach = gicData.ValuationApproach, IsReinsurance = gicData.IsReinsurance};", + "\n }", "\n ", "\n // Import Scope", "\n public bool IsPrimaryScope (string dataNode) => DataNodesByImportScope[ImportScope.Primary].Contains(dataNode);",