IC Spreading
The IC spreading function is only relevant for processes with IC matching type that include custom dimension 2 and it is useful when the user does not want to specify Ctp custom dimension 2 in the IC data entry. This data processing writes off the existing IC declarations: by reallocating the amounts on Ctp custom dimension 2 based on the declarations made by the counterparty and by keeping the original unbalanced amounts.
Setup¶
For the data processing to be enabled, the following requirements must be satisfied:
- the process on which the user works must manage the by Entity/Custom dimension 2 relationship (relationship type in the Journals rules)
- the process on which the user works must enable the IC spreading data processing in the Data processing - Consolidation – Advanced consolidation section and the node of IC spreading logics to handle must be present among the requirements.
Run data processing¶
The data processing is run from the Contributor cockpit via the “IC spreading” button.
The button is available only when the setup requirements are met.
The button opens the window with which the user runs the data processing. The required parameters are:
-
Scenario/Period
-
If the cockpit on which the user works is linked to a process with business cycles for scenario/period, then the proposed scenario/period is the one used to access the cockpit. It is impossible to modify the proposed value;
- If the cockpit on which the user works is linked to a process with only one business cycle for scenario/period, then the proposed scenario/period is the last one linked to the process that is used to access the cockpit, but it is still possible to modify it and select multiple scenarios/periods as long as they are linked to the selected process;
-
Entity
-
Those selected in the cockpit. It is impossible to modify the proposed list;
-
IC spreading logic
-
Optional. If it is not specified, then all the IC spreading logics are run;;
-
Run only deletion
-
It is possible to run the data processing only to delete the previous results (write-offs and reallocations) and go bavk to the initial state.
Data processing¶
The data processing compares the declarations made by the Entity to those made by the counterparty. The set of declarations to compare are specified by the IC spreading logics. The amounts are reallocated within sets that do not impact each other. A dataset is defined by the following filters:
- Scenario/Period;
- The Entity/Counterparty relationship;
- The categories of IC spreading logic;
-
The accounts of the IC spreading logic
-
If the logic has only primary accounts and the relationship is single adjustment, then all the declarations made by the Entity on the accounts of the logic will be compared with those made by the Ctp entity on these accounts.
-
If the logic specifies two different sets:
-
The declarations of Entity B to A on primary accounts will be compared with those of Entity A to B on dependent accounts;
- The declarations of Entity A to B on primary accounts will be compared with those of Entity B to A on dependent accounts;
The processed data are the IC declarations, the preconsolidation adjustments (with Counterparty) and the Reconciliation accounts. The accounts used in the reconciliations are those that belong to the IC spreading logic. A reconciliation row is linked directly to the logic (the code of the logic is on the row) and is taken into consideration:
- on a primary account, if the “Row” field is equal to 1 and the code of the Entity is lexicographically less than that of the Ctp entity or the row is equal to 2 and the code of the Entity is lexicographically greater than that of the Ctp entity;
- Otherwise, it is considered on a dependent account.
The first operation of the data processing is to calculate the total declarations (IC declarations, adjustments and Reconciliations are added up) of the dataset (as defined previously) and further detailed by custom dimension 2 (of the Declaring entity).
Given the Entities in the dataset A and B, the declarations made by Entity A to B on custom dimension X are compared with those made by Entity B to A on the same custom dimension. Part of these amounts (the smallest total) is reallocated to custom dimension X on both sides. Any residual amounts to be reallocated (if the totals are the same, then there will be no residual amounts), are reallocated proportionally to each custom dimension used by the counterparty's declarations.
The data processing generates two types of rows that are copies of the original ones except for the following differences:
-
Writeoff rows
-
Amounts with changed sign;
-
Origin = “PROC_IC_SPREADING_CB”
-
Reallocated rows
-
Amounts obtained by reallocation
- Calculated Ctp custom dimension 2;
- Origin = “PROC_IC_SPREADING
Since the totals to compare may be expressed in different currencies (the declarations made by different Entities), the amounts are converted to the reference currency. The conversions are used to calculate the totals; therefore, they have an impact on the comparisons and on the calculation of the reallocation factors.
IC Spreading in case of Sign errors¶
As mentioned, the aim of the IC Spreading is to write off the existing IC declarations, reallocating the amounts to the Ctp Custom dimension 2 based on the declarations made by the counterparty, while keeping the original unbalanced amounts.
If the declarations made by the counterparty have different signs for the different Custom dimensions 2 on the same side of the relationship, the reallocation may create amounts that cannot be managed by other data processes (e.g. IC eliminations).
This is due to the fact that in order to reallocate the amounts allocated to a generic Ctp Custom dimension 2, the data processing calculates a "weight" using the IC declaration made by the counterparty for each element of the Custom dimension 2. This weight results from the ratio of the amount of a specific element of the Custom dimension 2 to the total of the amounts of all custom dimensions 2. If the amounts have the same sign, the ratio will have a value between 0 and 1. Otherwise, in the presence of sign errors, the ratio may be high and thus generate huge amounts.
Examples
Given the following IC declarations:
1) Entity A vs Entity Ctp B - amount +200 on generic Ctp custom dimension 2 NC
2) Entity B vs Entity Ctp A - amount +101 on custom dimension 2 X
3) Entity B vs Entity Ctp A - amount +100 on custom dimension 2 Y
To reallocate the amount of the first row, the system calculates the ratio based on the second and third row.
ratio for X = X/(X+Y) = 101/(101+100) = 101/201 = 0.50
ratio for Y = Y/(X+Y) = 100/(101+100) = 100/201 = 0.50
Given the IC declarations below:
1) Entity A vs Ctp Entity B - amount +200 on generic custom dimension 2 NC
2) Entity B vs Ctp Entity A - amount +101 on custom dimension 2 X
3) Entity B vs Ctp Entity A - amount -100 on custom dimension 2 Y (sign error)
To reallocate the first row, the system calculates the ratio based on the second and on the third row.
ratio for X = X/(X+Y) = 101/(101-100) = 101/1 = 101
ratio for Y = Y/(X+Y) = 100/(101-100) = 100/1 = 100
Workaround
In the IC Spreading configuration it is possible to enable the "Delete error signs" option. When this option is enabled, the system uses a different algorithm for Ctp Custom dimensions 2 reallocation. For further details, please see Data entry chapter (Data entry > Rules and configuration > Amounts and IC Rules).
Otherwise, the user should fix data with sign errors or carry out manual overrides.
Data entry¶
When the “IC Spreading” data processing is active in the process, then the user does not want or cannot insert the Ctp custom dimension 2 in the IC data entries. By enabling "Show Override CTP {NOME_DEST2} type" option in the process (Data Entry & Submission Rules – Gross amounts & IC), the Ctp custom dimension 2 will be defined automatically with the default value specified for the Ctp entity and it will no longer be possible to modify it.
When the above option is enabled, by adding the 0002274 – Enable overriding for IC spreading function of the module of CONS_ELAB to the user’s role, the IC data entries allow labeling some IC declarations as overridden. The overridden declarations allow the user to specify the Ctp custom dimension 2 during data entry.
There are two types of overridden declarations: “None” and “Override”. Both are neither written off nor reallocated. The declarations called “Override” are totally ignored by the data processing. The declarations called “None” impact the reallocations of declarations that are not overridden.
IC cockpit and IC matching¶
When the “IC Spreading” data processing is active in the process and the "Show Override CTP {NOME_DEST2} type" option is active in the process rules (Data Entry & Submission Rules – Gross amounts & IC), then if the user enters the IC cockpit with the By Entity type Relationship, then the cockpit shows data by automatically excluding the rows generated by the data processing (writeoffs and reallocations).
On the other hand, if the user enters the IC cockpit with by Entity/Custom dimension 2 relationship, then the IC cockpit considers only the rows reallocated by the data processing and allows the user to view its result.