Tax accounting algorithm: Difference between revisions

From Wiki Algonomia
Jump to navigation Jump to search
Line 383: Line 383:
=== Output ===
=== Output ===
{| class="wikitable sortable mw-collapsible mw-collapsed"
{| class="wikitable sortable mw-collapsible mw-collapsed"
|+Report Deferred Tax
!Role
!Role
!Label
!Label
Line 457: Line 458:
|
|
|Enum : from the list of available "Sub-account" for the selected "Primary accounts"
|Enum : from the list of available "Sub-account" for the selected "Primary accounts"
|Forbidden
|Yes
|-
|Data segmentation
|Nature
|
|Enum : Base; Tax
|Forbidden
|Forbidden
|Yes
|Yes
|-
|-
|Flows
|Flows
|Opening FYN-1
|DT Report - Opening FYN-1
|
|
|Couple (Decimal;ISO 3 Currency Code)
|Couple (Decimal;ISO 3 Currency Code)
|If multiple defined, are aggregated for computation
|
|No, if absent and required by computation, assumed to be 0
|No, if absent and required by computation, assumed to be 0
|-
|-
|Flows
|Flows
|Change in opening
|DT Report - Change in opening
|
|
|Couple (Decimal;ISO 3 Currency Code)
|Couple (Decimal;ISO 3 Currency Code)
Line 482: Line 476:
|-
|-
|Flows
|Flows
|True-up P&L
|DT Report - True-up P&L
|
|
|Couple (Decimal;ISO 3 Currency Code)
|Couple (Decimal;ISO 3 Currency Code)
Line 489: Line 483:
|-
|-
|Flows
|Flows
|Income input - core
|DT Report - Income input - core
|
|
|Couple (Decimal;ISO 3 Currency Code)
|Couple (Decimal;ISO 3 Currency Code)
Line 496: Line 490:
|-
|-
|Flows
|Flows
|Income input - non core
|DT Report - Income input - non core
|
|
|Couple (Decimal;ISO 3 Currency Code)
|Couple (Decimal;ISO 3 Currency Code)
Line 503: Line 497:
|-
|-
|Flows
|Flows
|Income input - total
|DT Report - Income input - total
|
|
|Couple (Decimal;ISO 3 Currency Code)
|Couple (Decimal;ISO 3 Currency Code)
Line 510: Line 504:
|-
|-
|Flows
|Flows
|Change in tax rate P&L (only for tax)
|DT Report - Change in tax rate P&L (only for tax)
|
|
|Couple (Decimal;ISO 3 Currency Code)
|Couple (Decimal;ISO 3 Currency Code)
Line 517: Line 511:
|-
|-
|Flows
|Flows
|Total Income (only for tax)
|DT Report - Total Income (only for tax)
|
|
|Couple (Decimal;ISO 3 Currency Code)
|Couple (Decimal;ISO 3 Currency Code)
Line 524: Line 518:
|-
|-
|Flows
|Flows
|Change in scope
|DT Report - Change in scope
|
|
|Couple (Decimal;ISO 3 Currency Code)
|Couple (Decimal;ISO 3 Currency Code)
Line 531: Line 525:
|-
|-
|Flows
|Flows
|OCI
|DT Report - OCI
|
|
|Couple (Decimal;ISO 3 Currency Code)
|Couple (Decimal;ISO 3 Currency Code)
Line 538: Line 532:
|-
|-
|Flows
|Flows
|Change in tax rate OCI (only for tax)
|DT Report - Change in tax rate OCI (only for tax)
|
|
|Couple (Decimal;ISO 3 Currency Code)
|Couple (Decimal;ISO 3 Currency Code)
Line 545: Line 539:
|-
|-
|Flows
|Flows
|Total OCI (only for tax)
|DT Report - Total OCI (only for tax)
|
|
|Couple (Decimal;ISO 3 Currency Code)
|Couple (Decimal;ISO 3 Currency Code)
Line 552: Line 546:
|-
|-
|Flows
|Flows
|Reclass and Other
|DT Report - Reclass and Other
|
|
|Couple (Decimal;ISO 3 Currency Code)
|Couple (Decimal;ISO 3 Currency Code)
Line 559: Line 553:
|-
|-
|Flows
|Flows
|CTA
|DT Report - CTA
|
|
|Couple (Decimal;ISO 3 Currency Code)
|Couple (Decimal;ISO 3 Currency Code)
Line 566: Line 560:
|-
|-
|Flows
|Flows
|Closing
|DT Report - Closing
|
|
|Couple (Decimal;ISO 3 Currency Code)
|Couple (Decimal;ISO 3 Currency Code)
|If multiple defined, are aggregated for computation
|If multiple defined, are aggregated for computation
|No, if absent and required by computation, assumed to be 0
|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
|}
|}


== Computational steps ==
== 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.
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.

Revision as of 15:44, 15 April 2024

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.