Giter VIP home page Giter VIP logo

ifrs17calculationengine's Introduction

Systemorph logo

IFRS17CalculationEngine is Systemorph repository for all IFRS 17 related projects available in our portal.

The content of each directory in this repository corresponds to a different Systemorph Cloud project:

ifrs17calculationengine's People

Contributors

alekseinekrasov avatar amuolo avatar andrey-katz-systemorph avatar bsurdulli avatar calderinisystemorph avatar dcolleoni avatar dtrzesniak avatar nnikolopoulos avatar sbatka avatar sbusato avatar scolella avatar tkukuljan avatar umueller1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ifrs17calculationengine's Issues

CL contribution for CDR

For CDR amount type, Combined Liabilities (CL) aoc step shows a balancing contribution due to the fact that previous aoc steps don't sum up to EOP.

Remove redundant specification on the Data Model

See that we use defaults as much as possible.
Example, we don't need to define a Display order if the default is the one we want

public record AmountType : KeyedOrderedDimensionWithExternalId, IHierarchicalDimension
{
[Display(Order = 10)] --> Not needed, over-specified
[Dimension(typeof(AmountType))]
public string Parent { get; init; }

[Display(Order = 20)]
[Dimension(typeof(PeriodType))]
public PeriodType PeriodType { get; init; }

}

Rename DataType

The name DataType for the enum DataType is too general.
Possible options are:
Optional, Mandatory, Calculated, CalculatedTelescopic
Identified a better name for this category and rename it

GitHub ready for public

  • repo public and add social media preview picture
  • improve issues and PR
  • move to CDN links
  • future releases> v1.2.x Scenario, v1.3.x projections

Improve error message for DataNode

Due to the current temporary logs pattern, the dimension validation for Data Nodes (and probably also other objects as well) is not shown as the errors captured by the importers are shown before. In other words, the two kind of errors are not merged and one only sees a portion of the total error message. The generalized opinion on this is that this causes confusion.

The aim of this issue is to improve the overall design of logs so as to use activity library.

Move unit-tests to CE project

Analyze which tests of the Full IFRS17 Template project can be moved to the IFRS17 project.
And move them to the latter.

Report slice by Reporting Node

Allow Reports to slice on reporting nodes.
ReportingNodes that are children of the selected ReportingNode should be displayed.

Clear out entanglement between ImportFormat and InputSource

ImportFormat is not InputSource. It should be properly separated. Adjust the dependent code.

snippet:

//Format
public string Format => args.ImportFormat; //remove it as a string
private IEnumerable loadPersistedInputSource => args.ImportFormat switch { //use this instead of Format in IfrsVariables (193) and adapt the logic
ImportFormats.Cashflow => (InputSource.Actual).RepeatOnce(),
ImportFormats.Actual => (InputSource.Cashflow).RepeatOnce(),
ImportFormats.DataNodeParameter => new InputSource[]{InputSource.Cashflow, InputSource.Actual},
_ => (InputSource.All).RepeatOnce(),
};

Migration to portal

Rename :
IFRS17CalculationEngine
IFRS17Client

Create directories for files in the root:
DataStructure => move inside /DataModel/
=> remove identities and ReportVariable (check for others) and move them into Import and Reporting
Utils => /Utils/ => break the current Utils NB in its subsections

In the root there should be only:
Directories
Readme
OverviewCalculationEngine
InputFormatDescription

Profile Report performance with partitions

Analyze performance of report.
Options:

  1. (current) set partitions and perform several queries to different partitions.
  2. perform one query and join with needed partitions

Add defaults for DataNode state and parameter

The aim of this issue is to create default for the data node state and parameter so as it is not mandatory to import them. This improves the usability of the calculation engine.

Use dropdowns in reports

Attach dropdown to settable prop of Report Mutable Scope.

-Work on issue with Slices:
Some default slices make more sense after some non default slices:
Eg in PV EconomicBasis is default but when slice by GroupOfContracct is selected it is better to slice before by GOC and then by EconomicBasis

-Work on issue with Filter:
Select multiple options:
the following scenario should be allowed:
Filter by Dim1: EconomicBasis = L
Filter by Dim2: GOC = [GIC1,GIC2]

in total there are 3 filters and the resulting filter should be:
Filter(Dim1) & ( Filter(Dim2,GIC1) || Filter(Dim2,GIC2) )

Deployment Pipeline

Pipelines to automatically upload the code from the repo to the portal (specify project (new or existing) and env).
Require approval to product owner.

Step up team to work on this.

This is not required for v1.
But we should get it as soon as possible.
Latest deadline is when a client will produce productive figures (follow up required).

Mvp is to use GitHub Action to trigger enhanced SyncTool with no interaction of human interaction.
Here Peter could drive the adaptation possibly with some support of DevOps team.

Enhancements to the tool:

  • inputs: cookie
  • personal connection for DB connection (stored as a secret)
  • which directory gets deployed to which project

Improve Importers

  • The parsers create instances even if errors are logged. This can be avoided to increase performance.
  • In the importers we have "await Workspace.UpdateAsync(ivs);". We need to log the errors/warnings when materializing ivs.
  • Check whether the query to the guid partition is needed at all in the Import Storage.

ReadMe file to help navigating the solution and to get started with hands-on

ReadMe file should :

  • Guide users to a selection of notebooks according to what the user wants to do: - to know more about the solution and its main blocks => OverviewCalculationEngine notebook. - to visualize reports of calculated results and interact => Report/Reports
  • Give a visual representation of the main blocks of the solution
  • Give an overview of the files and their location to help the navigation throughout.

Projections for PV

Projections are calculated at import and displayed are report time.

-Use DT1.1 2020M3 and create BM for projection 1 (by faking an import of the same input for 2020M6)
-Update Benchamarks for DT1.1 2020M3.
-Separate test without projections and with projection. (Be able to run both without effort).
-Correct calculations of miscalculated aocStep for project.

Queries with Priority

Introduce concept of Priority in LoadCurrentAndPreviousParameterAsync query (see ParameterResultsEntityQueryExtensions in IfrsGeneric). (DataStructure/DataNode) to support Scenarios.

Refactor GetElementOrDefault

suggestion:
static T GetValidElement(this IList array, int index)
replacing
static T GetElementOrDefault(this ICollection array, int index)

Because the default(T) is something else than the first/last element.

What about "static T GetValidElement(this IList array, int index)"?

Originally posted by @sbusato in #33 (comment)

Internal Reinsurance

for the case of internal reinsurance the Partner would be the reporting node, hence not null.

FX Conversion

Reports don't react to FX conversion when changing CurrencyType in the args.

Reintroduce and test AggregateBy and AggregateOver in the ReportVariable

During implementation of the report for data cubes, we had to disable some of these properties, as the SliceColumnsBy and SliceRowsBy were not doing things in the desired order of slices and we had no control.

Let's re-enable them and test that they generate the expected results.

[NotVisible]
[Dimension(typeof(Currency), nameof(ContractualCurrency))]
[IdentityProperty]
//[AggregateBy] **-> Here**
public string ContractualCurrency { get; init; }

Note that we might need to remodel, as we have all currency types as properties and multiple attribute might not work --> maybe we just need them as normal properties and an additional Currency property with the attribute and the 'right' currency.

Appealing documentation

Readme => Content of Read Me page
Reports => Guide interaction through out the NB
Support changing inputs: CF/ACT and SIMPLE-Data - ImportNobook
Export : Map Template - Add reference in the Readme and improve description

Formulas Adaptations for Arithmetics

Adapt Formulas in the Ifrs17 Calculation Engine in order to unblock the Arithmetics stream.
In particular, change formulas where there is arithmetics for byte arrays.
e.g.
GetSign(...) * values
CurrentValues - PreviousValues
Interest^(-1) will now be "Power(Interest, -1)"

Work on the following branch 23166_ArithmeticsChanges .

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.