Tax accounting algorithm

From Wiki Algonomia
Jump to navigation Jump to search

Introduction

Context

Welcome to the OpenSource Tax accounting Algorithm with Tax Impact Computation wiki page! This platform serves as a comprehensive resource for understanding and implementing a pioneering open-source algorithm specifically designed to compute and prepare the tax proof and the deffered tax report.

Objectives

The objective of this algorithm is to perform tax accounting computations on a dataset from a company, produce the tax proof and/or the deferred tax report. This algorithm allows to run the computation on an arbitrary data structure through the use of labelling systems and gives back the result at the requested level of segmentation.

Feature Overview

The algorithm will present the following features:

  • Computation of the tax impact of the temporary differences, per flow;
  • Inclusion of Tax losses and tax credits in the computation, with detail;
  • Management of Core and Non-core analysis;
  • Variable number of Reconciliation steps with configurable origin of the reconciliation;
  • Central management of tax rates;
  • Availability of a distinct rate basked;
  • Compatibility with the Pillar 2 computation;
  • Generation of the Tax proof component;
  • Generation of the Deferred Tax Report.

General logic of the algorithm

Development Program

The Tax accounting algorithl presented in this page is an ongoing work and its documentation on this wiki is also a work in progress. It is by no means complete and definitive, and changes will occur in the upcoming weeks and months.

Both GitHub and MediaWiki are amazing tools to manage collaborative work and track the progress and modifications that happen with time.

The detailed to-do list is presented Tax accounting algorithm development program.

Data structure

Structure overview

Algonomia API Framework

The Tax Accounting Algorithm uses Algonomia API Framework to receive input data and send output data for the computations. In the following sections, it is assumed that data has been transferred to the Tax Accounting Algorithm using this framework.

Input

The input data follows the usual division required by the Algonomia API Framework : Data, Rules, Other.

Data

The following tables presents the data points allowed as "Data" :

Input Data Points
Role Label Definition Typing Multiplicity behavior Mandatory
Matching DTX Entity segmentation Allows to define the segmentation of the data input that corresponds to the base aggregation level for the entity involved in the Tax accounting computation Couple (String; Integer) Several Values can be defined as "DTX Entity segmentation", but the Integer has to be unique among the set Yes
Data segmentation DTX Level 1 Enum : from the list of available DTX referencing tree levels Forbidden Yes
Data segmentation DTX Level 2 Enum : from the list of available DTX referencing tree levels Forbidden Yes
Data segmentation DTX Level 3 Enum : from the list of available DTX referencing tree levels Forbidden Yes
Data segmentation DTX Level 4 Enum : from the list of available DTX referencing tree levels Forbidden Yes
Data segmentation DTX Level 5 Enum : from the list of available DTX referencing tree levels Forbidden Yes
Data segmentation DTX Free Account segmentation Arbitrary segmentation level to preserve Couple (String; Integer) Several Values can be defined as "DTX Free Account segmentation", but the Integer has to be unique among the set No
Data segmentation Type of difference Enum : from the list of available "Type of differences" Forbidden Yes
Data segmentation Primary account Enum : from the list of available "Primary account" for the selected "Type of differences" Forbidden Yes
Data segmentation Sub-account Enum : from the list of available "Sub-account" for the selected "Primary accounts" Forbidden Yes
Data segmentation Nature Enum : Base; Tax Forbidden Yes
Data segmentation Step Enum : Reporting to Separate; Separate to Contribution; Reporting to Local; Local To Tax; Tax losses and Tax credits; Local to Tax - Separate Basket Forbidden Yes
Data segmentation Sign Enum : Positive; Negative Forbidden Yes
Data segmentation Expiration Enum : Expiring in Y+0->5 (6 items); Expiring in over Y+ 5; Unlimited; Expired; N.a. Forbidden No
Data segmentation Basket Enum : Standard; Separate Forbidden Yes
Data segmentation Tax rate multiplication Enum: deferred rate; current rate Forbidden Yes
Flows Opening FYN-1 Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows Change in opening Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows True-up P&L Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows Income input - core Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows Income input - non core Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows Income input - total Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows Change in tax rate P&L (only for tax) Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows Total Income (only for tax) Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows Change in scope Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows OCI Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows Change in tax rate OCI (only for tax) Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows Total OCI (only for tax) Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows Reclass and Other Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows CTA Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows Closing Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Manual Tax rates Opening Tax Rate percentage Only one value is acceptable for a given segment of the analysis, see Rule mapping No, if required but absent, computation is aborted
Manual Tax rates Annual Tax Rate percentage Only one value is acceptable for a given segment of the analysis, see Rule mapping No, if required but absent, computation is aborted
Manual Tax rates Closing Tax Rate percentage Only one value is acceptable for a given segment of the analysis, see Rule mapping No, if required but absent, computation is aborted

Rules

The following tables presents the data points allowed as "Rules" :

Input Rules data points
Role Label Definition Typing Multiplicity behavior Mandatory
Matching DTX Rule segmentation Allows to define the segmentation level of the Rule component to be retrieved Couple (String; Integer) Several Values can be defined as "ATP Rule segmentation", but the Integer has to be unique among the set Yes
National taxation DTX Consolidation Tax Rate Input of the group's consolidation tax rate percentage Only one value is acceptable for a given segment of the analysis, see Rule mapping Yes
National taxation DTX Deferred Standard CIT rate - Opening Input of the applicable national tax rate affecting the entity's deferred tax computation, for the Opening flows percentage Only one value is acceptable for a given segment of the analysis, see Rule mapping Yes
National taxation DTX Deferred Standard CIT rate - Current Year Input of the applicable national tax rate affecting the entity's deferred tax computation, for the Current year flows percentage Only one value is acceptable for a given segment of the analysis, see Rule mapping Yes
National taxation DTX Deferred Standard CIT rate - Closing Input of the applicable national tax rate affecting the entity's deferred tax computation, for the Closing year flows percentage Only one value is acceptable for a given segment of the analysis, see Rule mapping Yes
National taxation DTX Current Standard CIT rate - Opening Input of the applicable national tax rate affecting the entity's local tax computation, for the Opening flows percentage Only one value is acceptable for a given segment of the analysis, see Rule mapping Yes
National taxation DTX Current Standard CIT rate - Current Year Input of the applicable national tax rate affecting the entity's local tax computation, for the Current year flows percentage Only one value is acceptable for a given segment of the analysis, see Rule mapping Yes
National taxation DTX Current Standard CIT rate - Closing Input of the applicable national tax rate affecting the entity's local tax computation, for the Closing year flows percentage Only one value is acceptable for a given segment of the analysis, see Rule mapping Yes
National taxation DTX Current Separate CIT rate - Opening Input of the applicable separate tax rate affecting the entity's local tax computation, for the Opening flows percentage Only one value is acceptable for a given segment of the analysis, see Rule mapping Yes
National taxation DTX Current Separate CIT rate - Current Year Input of the applicable separate tax rate affecting the entity's local tax computation, for the Current year flows percentage Only one value is acceptable for a given segment of the analysis, see Rule mapping Yes
National taxation DTX Current Separate CIT rate - Closing Input of the applicable separate tax rate affecting the entity's local tax computation, for the Closing year flows percentage Only one value is acceptable for a given segment of the analysis, see Rule mapping Yes

Other

Output

Report Deferred Tax
Role Label Definition Typing Multiplicity behavior Mandatory
Entity segmentation DTX Entity segmentation Allows to define the segmentation of the data input that corresponds to the base aggregation level for the entity involved in the Tax accounting computation Couple (String; Integer) Several Values can be defined as "DTX Entity segmentation", but the Integer has to be unique among the set Yes
Data segmentation DTX Level 1 Enum : from the list of available DTX referencing tree levels Forbidden Yes
Data segmentation DTX Level 2 Enum : from the list of available DTX referencing tree levels Forbidden Yes
Data segmentation DTX Level 3 Enum : from the list of available DTX referencing tree levels Forbidden Yes
Data segmentation DTX Level 4 Enum : from the list of available DTX referencing tree levels Forbidden Yes
Data segmentation DTX Level 5 Enum : from the list of available DTX referencing tree levels Forbidden Yes
Data segmentation DTX Free Account segmentation Arbitrary segmentation level to preserve Couple (String; Integer) Several Values can be defined as "DTX Free Account segmentation", but the Integer has to be unique among the set No
Data segmentation Type of difference Enum : from the list of available "Type of differences" Forbidden Yes
Data segmentation Primary account Enum : from the list of available "Primary account" for the selected "Type of differences" Forbidden Yes
Data segmentation Sub-account Enum : from the list of available "Sub-account" for the selected "Primary accounts" Forbidden Yes
Flows DT Report - Opening FYN-1 Couple (Decimal;ISO 3 Currency Code) No, if absent and required by computation, assumed to be 0
Flows DT Report - Change in opening Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows DT Report - True-up P&L Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows DT Report - Income input - core Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows DT Report - Income input - non core Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows DT Report - Income input - total Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows DT Report - Change in tax rate P&L (only for tax) Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows DT Report - Total Income (only for tax) Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows DT Report - Change in scope Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows DT Report - OCI Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows DT Report - Change in tax rate OCI (only for tax) Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows DT Report - Total OCI (only for tax) Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows DT Report - Reclass and Other Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows DT Report - CTA Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0
Flows DT Report - Closing Couple (Decimal;ISO 3 Currency Code) If multiple defined, are aggregated for computation No, if absent and required by computation, assumed to be 0

Computational steps

Data received by the algorithm are processed using the standardized Rule matching methodology. At this stage every single entry contains both the financial data and the rules to be applied.