Skip to content

Commit

Permalink
Rule spec for DQC_0093.
Browse files Browse the repository at this point in the history
  • Loading branch information
Paul Warren authored and davidtauriello committed May 9, 2022
1 parent 0130a30 commit d03a7d5
Showing 1 changed file with 24 additions and 3 deletions.
27 changes: 24 additions & 3 deletions docs/DQC_IFRS_0093/DQC_0093.md
Original file line number Diff line number Diff line change
@@ -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|
|--- |--- |--- |--- |--- |--- |--- |--- |
Expand All @@ -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.
Expand All @@ -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.

Expand All @@ -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)}.
Expand Down

0 comments on commit d03a7d5

Please sign in to comment.