Tax accounting algorithm: Difference between revisions
(→Output) |
(→Output) |
||
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 | |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) | ||
| | | | ||
|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 | ||
|} | |} | ||
== 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" :
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" :
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
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.