diff --git a/docs/DQC_IFRS_0093/DQC_0093.md b/docs/DQC_IFRS_0093/DQC_0093.md index 12795d553b..e0151bdb0b 100644 --- a/docs/DQC_IFRS_0093/DQC_0093.md +++ b/docs/DQC_IFRS_0093/DQC_0093.md @@ -1,9 +1,9 @@ # Durational Aggregation -## Rule function -This rule identifies where the values of a durational element for a series of periods of time do not aggregate to the value representing the aggregated period in the instance. The rule matches sub periods based on the start date and end date into a contiguous period of time. The rule then matches the calculated contiguous period to equivalent periods reported in the instance. For example the rule will check that the values for Q1 + Q2 for any durational element is equal to the value for that element for the first half of the year. The rule works for all base taxonomy elements and time periods reported in the instance. +## Rule description +This rule identifies where the values of a durational element for a series of periods of time do not aggregate to a value representing the aggregated period in the instance. The rule groups sub-periods into a contiguous period of time based on the start date and end date and then matches the calculated contiguous period to equivalent periods reported in the instance. For example, the rule will check that the values for Q1 + Q2 for any durational element is equal to the value for that element for the first half of the year. The rule works for all time periods reported in the instance. Certain elements (for example, averages) are excluded from the check. -The rule incorporates a tolerance factor based on the lowest decimals of the aggregated values and its addends. This means if one number is accurate to -6 (million) then there can be a variance between the aggregated number and its components. The rule amplifies the difference for possible rounding by multiplying the allowable difference by a factor of 2. The following table depicts how this works. +The rule incorporates a tolerance factor based on the lowest decimals of the aggregated values and its addends. This means if one number is accurate to decimals = -6 (million) then there can be a variance between the aggregated number and its components. The rule amplifies the difference for possible rounding by multiplying the allowable difference by a factor of 2. The following table depicts how this works. |Value of total|Value of Addends|Decimal of total|Lowest decimal of addends|Decimal tolerance factor|Factor Rate|Tolerance|Is error| |--- |--- |--- |--- |--- |--- |--- |--- | @@ -14,6 +14,7 @@ The rule incorporates a tolerance factor based on the lowest decimals of the agg |550 million|551 million|-5|-3|100,000|2|200,000|Yes| ## Problem solved by the rule + This rule addresses inconsistencies in tagging the same element from period to period. The rule flags the following data quality errors: 1. Values tagged with 0 instead of being tagged with nil. @@ -22,6 +23,25 @@ This rule addresses inconsistencies in tagging the same element from period to p 4. Inappropriate element selection across periods. 5. Inappropriate decimals. +### Rule Specification + +Let **eligible totals** be the list of facts reported with a non-nil value for concepts that: + +* are _monetary_; +* have duration period type; and +* have a local name which does not contain the sub-string "average" (case-insensitive). + +For each set of 2, 3 or 4 facts (the **component facts**) which are _dimensionally aligned_ except for period with a fact, **F**, in **eligible totals**, and where the periods of the **component facts** form a contiguous period of time, with a start time equal to the start time of **F** and an end time equal to the end time of **F**, the sum of values of the **component facts** must not differ from the value of **F** by more than the **specified tolerance**. + +The **specified tolerance** is: + +``` +2 * (N-1) * 10^(-M) +``` + +* **N** is the number of facts in the **component facts** set. +* **M** is the minimum value of the decimals attribute (i.e. least precise) of **F** and all facts in **component facts**. + ## Example rule message Sum of the cumulative periods of 360,541,000 for ifrs-full:IncreaseDecreaseThroughExerciseOfOptions does not match the reported total of 36,064,000, a difference of 324,477,000. @@ -44,6 +64,7 @@ Decimals: -3 Rule Element ID: 9525 Rule version: 16.0 + ### General message template Sum of the cumulative periods of {$sum-periods} for {$fact1.concept.name} does not match the reported total of {$fact1}, a difference of {abs($sum-periods - $fact1)}.