diff --git a/dqc_us_rules/dqc-ifrs-2018-V20-ruleset.zip b/dqc_us_rules/dqc-ifrs-2018-V20-ruleset.zip index 3b0022951d..b9882c0843 100644 Binary files a/dqc_us_rules/dqc-ifrs-2018-V20-ruleset.zip and b/dqc_us_rules/dqc-ifrs-2018-V20-ruleset.zip differ diff --git a/dqc_us_rules/dqc-ifrs-2019-V20-ruleset.zip b/dqc_us_rules/dqc-ifrs-2019-V20-ruleset.zip index 0916e868d3..c164989e90 100644 Binary files a/dqc_us_rules/dqc-ifrs-2019-V20-ruleset.zip and b/dqc_us_rules/dqc-ifrs-2019-V20-ruleset.zip differ diff --git a/dqc_us_rules/dqc-ifrs-2020-V20-ruleset.zip b/dqc_us_rules/dqc-ifrs-2020-V20-ruleset.zip index ec5cec2354..d5884d8ea7 100644 Binary files a/dqc_us_rules/dqc-ifrs-2020-V20-ruleset.zip and b/dqc_us_rules/dqc-ifrs-2020-V20-ruleset.zip differ diff --git a/dqc_us_rules/dqc-ifrs-2021-V20-ruleset.zip b/dqc_us_rules/dqc-ifrs-2021-V20-ruleset.zip index 72fd738329..eadd24ec6d 100644 Binary files a/dqc_us_rules/dqc-ifrs-2021-V20-ruleset.zip and b/dqc_us_rules/dqc-ifrs-2021-V20-ruleset.zip differ diff --git a/dqc_us_rules/dqc-ifrs-2022-V20-ruleset.zip b/dqc_us_rules/dqc-ifrs-2022-V20-ruleset.zip index 0488a187ee..43c91abee7 100644 Binary files a/dqc_us_rules/dqc-ifrs-2022-V20-ruleset.zip and b/dqc_us_rules/dqc-ifrs-2022-V20-ruleset.zip differ diff --git a/dqc_us_rules/dqc-ifrs-2023-V20-ruleset.zip b/dqc_us_rules/dqc-ifrs-2023-V20-ruleset.zip index 752aee79a8..a90ec39658 100644 Binary files a/dqc_us_rules/dqc-ifrs-2023-V20-ruleset.zip and b/dqc_us_rules/dqc-ifrs-2023-V20-ruleset.zip differ diff --git a/dqc_us_rules/dqc-us-2018-V20-ruleset.zip b/dqc_us_rules/dqc-us-2018-V20-ruleset.zip index 11dca42c26..13c9a1826e 100644 Binary files a/dqc_us_rules/dqc-us-2018-V20-ruleset.zip and b/dqc_us_rules/dqc-us-2018-V20-ruleset.zip differ diff --git a/dqc_us_rules/dqc-us-2019-V20-ruleset.zip b/dqc_us_rules/dqc-us-2019-V20-ruleset.zip index f27f96cd03..5423951dde 100644 Binary files a/dqc_us_rules/dqc-us-2019-V20-ruleset.zip and b/dqc_us_rules/dqc-us-2019-V20-ruleset.zip differ diff --git a/dqc_us_rules/dqc-us-2020-V20-ruleset.zip b/dqc_us_rules/dqc-us-2020-V20-ruleset.zip index 88a1631dab..f9ef70f02f 100644 Binary files a/dqc_us_rules/dqc-us-2020-V20-ruleset.zip and b/dqc_us_rules/dqc-us-2020-V20-ruleset.zip differ diff --git a/dqc_us_rules/dqc-us-2021-V20-ruleset.zip b/dqc_us_rules/dqc-us-2021-V20-ruleset.zip index b0e65cdb16..2c9b81bd49 100644 Binary files a/dqc_us_rules/dqc-us-2021-V20-ruleset.zip and b/dqc_us_rules/dqc-us-2021-V20-ruleset.zip differ diff --git a/dqc_us_rules/dqc-us-2022-V20-ruleset.zip b/dqc_us_rules/dqc-us-2022-V20-ruleset.zip index d076748416..14b1ab421c 100644 Binary files a/dqc_us_rules/dqc-us-2022-V20-ruleset.zip and b/dqc_us_rules/dqc-us-2022-V20-ruleset.zip differ diff --git a/dqc_us_rules/dqc-us-2023-V20-ruleset.zip b/dqc_us_rules/dqc-us-2023-V20-ruleset.zip index c27b5728f8..3d9abd652c 100644 Binary files a/dqc_us_rules/dqc-us-2023-V20-ruleset.zip and b/dqc_us_rules/dqc-us-2023-V20-ruleset.zip differ diff --git a/dqc_us_rules/resources.zip b/dqc_us_rules/resources.zip index 162e35ff52..bb6a8a4d96 100644 Binary files a/dqc_us_rules/resources.zip and b/dqc_us_rules/resources.zip differ diff --git a/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2015_concepts.csv b/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2015_concepts.csv index 997b75ed76..4814c6868d 100644 --- a/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2015_concepts.csv +++ b/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2015_concepts.csv @@ -4814,7 +4814,6 @@ 5564,DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsPolicyholderLiabilities 5565,TemporaryEquityEliminationAsPartofReorganization 5566,DepositsWithClearingOrganizationsAndOthersSecurities -5567,DerivativeCostOfHedgeNetOfCashReceived 5568,TemporaryEquitySharesSubscribedButUnissuedSubscriptionsReceivable 5569,IncomeTaxReconciliationNondeductibleExpenseCharitableContributions 5570,CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYieldTransfersToLoansHeldForSale diff --git a/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2016_concepts.csv b/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2016_concepts.csv index 0937723b4e..ecd2e04753 100644 --- a/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2016_concepts.csv +++ b/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2016_concepts.csv @@ -4801,7 +4801,6 @@ 5564,DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsPolicyholderLiabilities 5565,TemporaryEquityEliminationAsPartofReorganization 5566,DepositsWithClearingOrganizationsAndOthersSecurities -5567,DerivativeCostOfHedgeNetOfCashReceived 5568,TemporaryEquitySharesSubscribedButUnissuedSubscriptionsReceivable 5569,IncomeTaxReconciliationNondeductibleExpenseCharitableContributions 5570,CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYieldTransfersToLoansHeldForSale diff --git a/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2017_concepts.csv b/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2017_concepts.csv index 847d4e7e5c..e030921be3 100644 --- a/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2017_concepts.csv +++ b/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2017_concepts.csv @@ -4729,7 +4729,6 @@ 5564,DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsPolicyholderLiabilities 5565,TemporaryEquityEliminationAsPartofReorganization 5566,DepositsWithClearingOrganizationsAndOthersSecurities -5567,DerivativeCostOfHedgeNetOfCashReceived 5568,TemporaryEquitySharesSubscribedButUnissuedSubscriptionsReceivable 5569,IncomeTaxReconciliationNondeductibleExpenseCharitableContributions 5570,CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYieldTransfersToLoansHeldForSale diff --git a/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2018_concepts.csv b/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2018_concepts.csv index e581d6dd1f..11f032b9d0 100644 --- a/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2018_concepts.csv +++ b/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2018_concepts.csv @@ -4452,7 +4452,6 @@ 5564,DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsPolicyholderLiabilities 5565,TemporaryEquityEliminationAsPartofReorganization 5566,DepositsWithClearingOrganizationsAndOthersSecurities -5567,DerivativeCostOfHedgeNetOfCashReceived 5568,TemporaryEquitySharesSubscribedButUnissuedSubscriptionsReceivable 5569,IncomeTaxReconciliationNondeductibleExpenseCharitableContributions 5570,CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYieldTransfersToLoansHeldForSale diff --git a/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2019_concepts.csv b/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2019_concepts.csv index 0325c21091..57999278a2 100644 --- a/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2019_concepts.csv +++ b/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2019_concepts.csv @@ -4331,7 +4331,6 @@ 5564,DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsPolicyholderLiabilities 5565,TemporaryEquityEliminationAsPartofReorganization 5566,DepositsWithClearingOrganizationsAndOthersSecurities -5567,DerivativeCostOfHedgeNetOfCashReceived 5568,TemporaryEquitySharesSubscribedButUnissuedSubscriptionsReceivable 5569,IncomeTaxReconciliationNondeductibleExpenseCharitableContributions 5570,CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYieldTransfersToLoansHeldForSale diff --git a/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2020_concepts.csv b/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2020_concepts.csv index c8445bbd06..b3abee21af 100644 --- a/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2020_concepts.csv +++ b/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2020_concepts.csv @@ -4331,7 +4331,6 @@ 5564,DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsPolicyholderLiabilities 5565,TemporaryEquityEliminationAsPartofReorganization 5566,DepositsWithClearingOrganizationsAndOthersSecurities -5567,DerivativeCostOfHedgeNetOfCashReceived 5568,TemporaryEquitySharesSubscribedButUnissuedSubscriptionsReceivable 5569,IncomeTaxReconciliationNondeductibleExpenseCharitableContributions 5570,CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYieldTransfersToLoansHeldForSale diff --git a/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2021_concepts.csv b/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2021_concepts.csv index a25f15a35c..cbc0184014 100644 --- a/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2021_concepts.csv +++ b/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2021_concepts.csv @@ -4331,7 +4331,6 @@ 5564,DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsPolicyholderLiabilities 5565,TemporaryEquityEliminationAsPartofReorganization 5566,DepositsWithClearingOrganizationsAndOthersSecurities -5567,DerivativeCostOfHedgeNetOfCashReceived 5568,TemporaryEquitySharesSubscribedButUnissuedSubscriptionsReceivable 5569,IncomeTaxReconciliationNondeductibleExpenseCharitableContributions 5570,CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYieldTransfersToLoansHeldForSale diff --git a/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2022_concepts.csv b/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2022_concepts.csv index 8370c86f0e..ba4aea3d3f 100644 --- a/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2022_concepts.csv +++ b/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2022_concepts.csv @@ -4331,7 +4331,6 @@ 5564,DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsPolicyholderLiabilities 5565,TemporaryEquityEliminationAsPartofReorganization 5566,DepositsWithClearingOrganizationsAndOthersSecurities -5567,DerivativeCostOfHedgeNetOfCashReceived 5568,TemporaryEquitySharesSubscribedButUnissuedSubscriptionsReceivable 5569,IncomeTaxReconciliationNondeductibleExpenseCharitableContributions 5570,CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYieldTransfersToLoansHeldForSale diff --git a/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2023_concepts.csv b/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2023_concepts.csv index 299639a75b..f1fb2d448d 100644 --- a/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2023_concepts.csv +++ b/dqc_us_rules/resources/DQC_US_0015/dqc_15_usgaap_2023_concepts.csv @@ -4331,7 +4331,6 @@ 5564,DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsPolicyholderLiabilities 5565,TemporaryEquityEliminationAsPartofReorganization 5566,DepositsWithClearingOrganizationsAndOthersSecurities -5567,DerivativeCostOfHedgeNetOfCashReceived 5568,TemporaryEquitySharesSubscribedButUnissuedSubscriptionsReceivable 5569,IncomeTaxReconciliationNondeductibleExpenseCharitableContributions 5570,CertainLoansAcquiredInTransferNotAccountedForAsDebtSecuritiesAccretableYieldTransfersToLoansHeldForSale diff --git a/dqc_us_rules/source/ifrs/2018/DQC_IFRS_0118.xule b/dqc_us_rules/source/ifrs/2018/DQC_IFRS_0118.xule index 0a347468a3..a1a6cd9957 100644 --- a/dqc_us_rules/source/ifrs/2018/DQC_IFRS_0118.xule +++ b/dqc_us_rules/source/ifrs/2018/DQC_IFRS_0118.xule @@ -137,11 +137,12 @@ for $cube in $statementCubes.sort $LegalEntityAxisInCube = filter $dimObjects where $item.local-name == 'LegalEntityAxis'returns $item $ContinuingAndDiscontinuedOperationsInCube = filter $dimObjects where $item == ContinuingAndDiscontinuedOperationsAxis returns $item + $InvestmentAxisUsed = filter $dimObjects where $item == SignificantInvestmentsInAssociatesAxis returns $item /** Dimension to check **/ /** Identify the axis that indicate their default values should not have a calculation check Add $ContinuingAndDiscontinuedOperationsInCube for those calc on the income statement that are always continuing ops.**/ - $AxisDefaultsNotToCheck = $MissingDefaultLabel + $MissingDefaults + $LegalEntityAxisInCube + $ContinuingAndDiscontinuedOperationsInCube + $AxisDefaultsNotToCheck = $MissingDefaultLabel + $MissingDefaults + $LegalEntityAxisInCube + $ContinuingAndDiscontinuedOperationsInCube + $InvestmentAxisUsed /** Identify if the current iteration is a default by taking the table dimensions deducting the dimensions of the fact and seeing if the resulting set intersects with the axis that are not checked. If this is greater than zero diff --git a/dqc_us_rules/source/ifrs/2019/DQC_IFRS_0118.xule b/dqc_us_rules/source/ifrs/2019/DQC_IFRS_0118.xule index 552cf833c5..418d181e20 100644 --- a/dqc_us_rules/source/ifrs/2019/DQC_IFRS_0118.xule +++ b/dqc_us_rules/source/ifrs/2019/DQC_IFRS_0118.xule @@ -139,11 +139,12 @@ for $cube in $statementCubes.sort $LegalEntityAxisInCube = filter $dimObjects where $item.local-name == 'LegalEntityAxis'returns $item $ConsolidatedEntityAxisInCube = filter $dimObjects where $item == srt:ConsolidatedEntitiesAxis returns $item $ContinuingAndDiscontinuedOperationsInCube = filter $dimObjects where $item == ContinuingAndDiscontinuedOperationsAxis returns $item + $InvestmentAxisUsed = filter $dimObjects where $item == SignificantInvestmentsInAssociatesAxis returns $item /** Dimension to check **/ /** Identify the axis that indicate their default values should not have a calculation check Add $ContinuingAndDiscontinuedOperationsInCube for those calc on the income statement that are always continuing ops.**/ - $AxisDefaultsNotToCheck = $MissingDefaultLabel + $MissingDefaults + $LegalEntityAxisInCube + $ConsolidatedEntityAxisInCube + $ContinuingAndDiscontinuedOperationsInCube + $AxisDefaultsNotToCheck = $MissingDefaultLabel + $MissingDefaults + $LegalEntityAxisInCube + $ConsolidatedEntityAxisInCube + $ContinuingAndDiscontinuedOperationsInCube + $InvestmentAxisUsed /** Identify if the current iteration is a default by taking the table dimensions deducting the dimensions of the fact and seeing if the resulting set intersects with the axis that are not checked. If this is greater than zero diff --git a/dqc_us_rules/source/ifrs/2020/DQC_IFRS_0118.xule b/dqc_us_rules/source/ifrs/2020/DQC_IFRS_0118.xule index 411cdef6bb..cdaf77ef94 100644 --- a/dqc_us_rules/source/ifrs/2020/DQC_IFRS_0118.xule +++ b/dqc_us_rules/source/ifrs/2020/DQC_IFRS_0118.xule @@ -139,11 +139,12 @@ for $cube in $statementCubes.sort $LegalEntityAxisInCube = filter $dimObjects where $item.local-name == 'LegalEntityAxis'returns $item $ConsolidatedEntityAxisInCube = filter $dimObjects where $item == srt:ConsolidatedEntitiesAxis returns $item $ContinuingAndDiscontinuedOperationsInCube = filter $dimObjects where $item == ContinuingAndDiscontinuedOperationsAxis returns $item + $InvestmentAxisUsed = filter $dimObjects where $item == SignificantInvestmentsInAssociatesAxis returns $item /** Dimension to check **/ /** Identify the axis that indicate their default values should not have a calculation check Add $ContinuingAndDiscontinuedOperationsInCube for those calc on the income statement that are always continuing ops.**/ - $AxisDefaultsNotToCheck = $MissingDefaultLabel + $MissingDefaults + $LegalEntityAxisInCube + $ConsolidatedEntityAxisInCube + $ContinuingAndDiscontinuedOperationsInCube + $AxisDefaultsNotToCheck = $MissingDefaultLabel + $MissingDefaults + $LegalEntityAxisInCube + $ConsolidatedEntityAxisInCube + $ContinuingAndDiscontinuedOperationsInCube + $InvestmentAxisUsed /** Identify if the current iteration is a default by taking the table dimensions deducting the dimensions of the fact and seeing if the resulting set intersects with the axis that are not checked. If this is greater than zero diff --git a/dqc_us_rules/source/ifrs/2021/DQC_IFRS_0118.xule b/dqc_us_rules/source/ifrs/2021/DQC_IFRS_0118.xule index 798f4a79be..968bd40636 100644 --- a/dqc_us_rules/source/ifrs/2021/DQC_IFRS_0118.xule +++ b/dqc_us_rules/source/ifrs/2021/DQC_IFRS_0118.xule @@ -139,11 +139,12 @@ for $cube in $statementCubes.sort $LegalEntityAxisInCube = filter $dimObjects where $item.local-name == 'LegalEntityAxis'returns $item $ConsolidatedEntityAxisInCube = filter $dimObjects where $item == srt:ConsolidatedEntitiesAxis returns $item $ContinuingAndDiscontinuedOperationsInCube = filter $dimObjects where $item == ContinuingAndDiscontinuedOperationsAxis returns $item + $InvestmentAxisUsed = filter $dimObjects where $item == SignificantInvestmentsInAssociatesAxis returns $item /** Dimension to check **/ /** Identify the axis that indicate their default values should not have a calculation check Add $ContinuingAndDiscontinuedOperationsInCube for those calc on the income statement that are always continuing ops.**/ - $AxisDefaultsNotToCheck = $MissingDefaultLabel + $MissingDefaults + $LegalEntityAxisInCube + $ConsolidatedEntityAxisInCube + $ContinuingAndDiscontinuedOperationsInCube + $AxisDefaultsNotToCheck = $MissingDefaultLabel + $MissingDefaults + $LegalEntityAxisInCube + $ConsolidatedEntityAxisInCube + $ContinuingAndDiscontinuedOperationsInCube + $InvestmentAxisUsed /** Identify if the current iteration is a default by taking the table dimensions deducting the dimensions of the fact and seeing if the resulting set intersects with the axis that are not checked. If this is greater than zero diff --git a/dqc_us_rules/source/ifrs/2022/DQC_IFRS_0118.xule b/dqc_us_rules/source/ifrs/2022/DQC_IFRS_0118.xule index 47b5fd4e99..5d2b375af2 100644 --- a/dqc_us_rules/source/ifrs/2022/DQC_IFRS_0118.xule +++ b/dqc_us_rules/source/ifrs/2022/DQC_IFRS_0118.xule @@ -139,11 +139,12 @@ for $cube in $statementCubes.sort $LegalEntityAxisInCube = filter $dimObjects where $item.local-name == 'LegalEntityAxis'returns $item $ConsolidatedEntityAxisInCube = filter $dimObjects where $item == srt:ConsolidatedEntitiesAxis returns $item $ContinuingAndDiscontinuedOperationsInCube = filter $dimObjects where $item == ContinuingAndDiscontinuedOperationsAxis returns $item + $InvestmentAxisUsed = filter $dimObjects where $item == SignificantInvestmentsInAssociatesAxis returns $item; /** Dimension to check **/ /** Identify the axis that indicate their default values should not have a calculation check Add $ContinuingAndDiscontinuedOperationsInCube for those calc on the income statement that are always continuing ops.**/ - $AxisDefaultsNotToCheck = $MissingDefaultLabel + $MissingDefaults + $LegalEntityAxisInCube + $ConsolidatedEntityAxisInCube + $ContinuingAndDiscontinuedOperationsInCube + $AxisDefaultsNotToCheck = $MissingDefaultLabel + $MissingDefaults + $LegalEntityAxisInCube + $ConsolidatedEntityAxisInCube + $ContinuingAndDiscontinuedOperationsInCube + $InvestmentAxisUsed /** Identify if the current iteration is a default by taking the table dimensions deducting the dimensions of the fact and seeing if the resulting set intersects with the axis that are not checked. If this is greater than zero diff --git a/dqc_us_rules/source/ifrs/2023/DQC_IFRS_0118.xule b/dqc_us_rules/source/ifrs/2023/DQC_IFRS_0118.xule index 47b5fd4e99..93491c988a 100644 --- a/dqc_us_rules/source/ifrs/2023/DQC_IFRS_0118.xule +++ b/dqc_us_rules/source/ifrs/2023/DQC_IFRS_0118.xule @@ -139,11 +139,12 @@ for $cube in $statementCubes.sort $LegalEntityAxisInCube = filter $dimObjects where $item.local-name == 'LegalEntityAxis'returns $item $ConsolidatedEntityAxisInCube = filter $dimObjects where $item == srt:ConsolidatedEntitiesAxis returns $item $ContinuingAndDiscontinuedOperationsInCube = filter $dimObjects where $item == ContinuingAndDiscontinuedOperationsAxis returns $item + $InvestmentAxisUsed = filter $dimObjects where $item == SignificantInvestmentsInAssociatesAxis returns $item /** Dimension to check **/ /** Identify the axis that indicate their default values should not have a calculation check Add $ContinuingAndDiscontinuedOperationsInCube for those calc on the income statement that are always continuing ops.**/ - $AxisDefaultsNotToCheck = $MissingDefaultLabel + $MissingDefaults + $LegalEntityAxisInCube + $ConsolidatedEntityAxisInCube + $ContinuingAndDiscontinuedOperationsInCube + $AxisDefaultsNotToCheck = $MissingDefaultLabel + $MissingDefaults + $LegalEntityAxisInCube + $ConsolidatedEntityAxisInCube + $ContinuingAndDiscontinuedOperationsInCube + $InvestmentAxisUsed /** Identify if the current iteration is a default by taking the table dimensions deducting the dimensions of the fact and seeing if the resulting set intersects with the axis that are not checked. If this is greater than zero diff --git a/dqc_us_rules/source/lib/version.xule b/dqc_us_rules/source/lib/version.xule index fb964cdbf8..8e84ce31fb 100644 --- a/dqc_us_rules/source/lib/version.xule +++ b/dqc_us_rules/source/lib/version.xule @@ -9,7 +9,7 @@ DQC Rules /** Define the rule version **/ -constant $ruleVersion = '20.0.5' +constant $ruleVersion = '20.0.6' /** Define Additional Attribute types that can be associated with a rule **/ diff --git a/dqc_us_rules/source/us/2018/DQC_0043.xule b/dqc_us_rules/source/us/2018/DQC_0043.xule index 02792e59df..09b1a5f031 100644 --- a/dqc_us_rules/source/us/2018/DQC_0043.xule +++ b/dqc_us_rules/source/us/2018/DQC_0043.xule @@ -141,6 +141,7 @@ for $IncomeItem in (($income_items) - set(DiscontinuedOperationGainLossOnDisposa false else $signFlag = "negative" + $messageText = "The company has reported the concept " + $IncomeItem.local-name + " as part of the cash flow statement. This income item is being deducted from the value of operating cash flows in the calculation defined by the filer. This implies that the resulting operating cash flow calculation excludes this income item from cash flow from operations. If " + $IncomeItem.local-name + " represents income from discontinued operations then the element NetCashProvidedByUsedInOperatingActivitiesContinuingOperations should be used as the total rather than the current total element of NetCashProvidedByUsedInOperatingActivities. If the item is an income item and is being deducted because the value is negative then consider changing the sign and weight of the element." effective_weight_is_negative($Operating, $IncomeItem) else $discOPs = set(DiscontinuedOperationIncomeLossFromDiscontinuedOperationBeforeIncomeTax, IncomeLossFromDiscontinuedOperationsNetOfTax, @@ -148,12 +149,13 @@ for $IncomeItem in (($income_items) - set(DiscontinuedOperationGainLossOnDisposa IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity) if $IncomeItem in $discOPs $signFlag = "positive" + $messageText = "The company has reported the concept " + $IncomeItem.local-name + " as part of the cash flow statement. This income item is being added to the value of operating cash flows in the calculation defined by the filer. This implies that the resulting operating cash flow calculation includes this income item in cash flow from operations. If " + $IncomeItem.local-name + " represents income from discontinued operations then the element NetCashProvidedByUsedInOperatingActivities should be used as the total rather than the current total element of NetCashProvidedByUsedInOperatingActivitiesContinuingOperations." effective_weight_is_positive($Operating, $IncomeItem) else false message -"The company has reported the concept {$IncomeItem} as a {$signFlag} weight descendant of Operating cash flows in the calculation linkbase of the filing. This element must make a {$signFlag} cash contribution to operating cash flows when the element {$Operating} is used. +"{$messageText} Rule Element Id:{$ruleId} Rule version: {$ruleVersion}" diff --git a/dqc_us_rules/source/us/2018/DQC_0060.xule b/dqc_us_rules/source/us/2018/DQC_0060.xule index 7825bbd859..c403e32442 100644 --- a/dqc_us_rules/source/us/2018/DQC_0060.xule +++ b/dqc_us_rules/source/us/2018/DQC_0060.xule @@ -66,9 +66,30 @@ assert US.0060.7497 satisfied $rule_id = (rule-name().split('.'))[rule-name().split('.').length]; +/** The discOpsMaterialityFlag is added to address those cases where the value has used cashflow from continuing ops, but the filer has no disc ops from cash flow + because it is immaterial. We asses this situation if the filer reported discontinued operations from income and the value of this is less than 5% of + cash flow from continuing ops. If the filer has used continuing ops by mistake this will get picked up if they have no Disc ops income and if disc ops + income is more than 5% of cash flow from continuing ops. **/ + +$discOpsValue = (list([nonils @concept in $DISCONTINUED_INCOME_ITEMS])) +$continuingOpsValue = list([@concept = NetCashProvidedByUsedInOperatingActivitiesContinuingOperations]) +$MaxValueOfDiscOps = if $discOpsValue.length > 0 + max($discOpsValue) + else + if $continuingOpsValue.length > 0 + max($continuingOpsValue) + else + skip + +$discOpsMaterialityFlag = if (abs($MaxValueOfDiscOps) > abs(max($continuingOpsValue)) * 0.05) + true + else + false + count(list([@NetCashProvidedByUsedInOperatingActivities])) == 0 and count(list([@NetCashProvidedByUsedInOperatingActivitiesContinuingOperations]#fact1))!= 0 and -count(list([@CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations]))== 0 +count(list([@CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations]))== 0 and +$discOpsMaterialityFlag message "This rule reflects updated guidance from the Data Quality Committee which contradicts with historical rules. This is a change based on the changes in the cashflow ASU published by FASB. diff --git a/dqc_us_rules/source/us/2018/constant.xule b/dqc_us_rules/source/us/2018/constant.xule index fce1ec94ac..cdcc6309e9 100644 --- a/dqc_us_rules/source/us/2018/constant.xule +++ b/dqc_us_rules/source/us/2018/constant.xule @@ -164,6 +164,10 @@ constant $income_items = set(ProfitLoss, DiscontinuedOperationGainLossOnDisposalOfDiscontinuedOperationNetOfTax ) +constant $DISCONTINUED_INCOME_ITEMS = set(IncomeLossFromDiscontinuedOperationsNetOfTax, + IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToNoncontrollingInterest, + IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity) + constant $MONETARY_NON_NEGS = filter $non_neg_items.keys where taxonomy().concept($item).is-monetary returns taxonomy().concept($item) constant $BANKING_MEASURES_BETWEEN_ZERO_AND_ONE = navigate parent-child descendants from list(RiskBasedRatiosAbstract, LeverageRatiosAbstract) taxonomy $us-gaap where $relationship.target.data-type.name == xbrli:pureItemType returns set (target-name) diff --git a/dqc_us_rules/source/us/2019/DQC_0043.xule b/dqc_us_rules/source/us/2019/DQC_0043.xule index 0fbcd64424..6a97639edc 100644 --- a/dqc_us_rules/source/us/2019/DQC_0043.xule +++ b/dqc_us_rules/source/us/2019/DQC_0043.xule @@ -142,6 +142,7 @@ for $IncomeItem in (($income_items) - set(DiscontinuedOperationGainLossOnDisposa false else $signFlag = "negative" + $messageText = "The company has reported the concept " + $IncomeItem.local-name + " as part of the cash flow statement. This income item is being deducted from the value of operating cash flows in the calculation defined by the filer. This implies that the resulting operating cash flow calculation excludes this income item from cash flow from operations. If " + $IncomeItem.local-name + " represents income from discontinued operations then the element NetCashProvidedByUsedInOperatingActivitiesContinuingOperations should be used as the total rather than the current total element of NetCashProvidedByUsedInOperatingActivities. If the item is an income item and is being deducted because the value is negative then consider changing the sign and weight of the element." effective_weight_is_negative($Operating, $IncomeItem) else $discOPs = set(DiscontinuedOperationIncomeLossFromDiscontinuedOperationBeforeIncomeTax, IncomeLossFromDiscontinuedOperationsNetOfTax, @@ -149,12 +150,13 @@ for $IncomeItem in (($income_items) - set(DiscontinuedOperationGainLossOnDisposa IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity) if $IncomeItem in $discOPs $signFlag = "positive" + $messageText = "The company has reported the concept " + $IncomeItem.local-name + " as part of the cash flow statement. This income item is being added to the value of operating cash flows in the calculation defined by the filer. This implies that the resulting operating cash flow calculation includes this income item in cash flow from operations. If " + $IncomeItem.local-name + " represents income from discontinued operations then the element NetCashProvidedByUsedInOperatingActivities should be used as the total rather than the current total element of NetCashProvidedByUsedInOperatingActivitiesContinuingOperations." effective_weight_is_positive($Operating, $IncomeItem) else false message -"The company has reported the concept {$IncomeItem} as a {$signFlag} weight descendant of Operating cash flows in the calculation linkbase of the filing. This element must make a {$signFlag} cash contribution to operating cash flows when the element {$Operating} is used. +"{$messageText} Rule Element Id:{$ruleId} Rule version: {$ruleVersion}" diff --git a/dqc_us_rules/source/us/2019/DQC_0060.xule b/dqc_us_rules/source/us/2019/DQC_0060.xule index 09a67044f8..73c8d52b13 100644 --- a/dqc_us_rules/source/us/2019/DQC_0060.xule +++ b/dqc_us_rules/source/us/2019/DQC_0060.xule @@ -68,9 +68,30 @@ assert US.0060.7497 satisfied $rule_id = (rule-name().split('.'))[rule-name().split('.').length]; +/** The discOpsMaterialityFlag is added to address those cases where the value has used cashflow from continuing ops, but the filer has no disc ops from cash flow + because it is immaterial. We asses this situation if the filer reported discontinued operations from income and the value of this is less than 5% of + cash flow from continuing ops. If the filer has used continuing ops by mistake this will get picked up if they have no Disc ops income and if disc ops + income is more than 5% of cash flow from continuing ops. **/ + +$discOpsValue = (list([nonils @concept in $DISCONTINUED_INCOME_ITEMS])) +$continuingOpsValue = list([@concept = NetCashProvidedByUsedInOperatingActivitiesContinuingOperations]) +$MaxValueOfDiscOps = if $discOpsValue.length > 0 + max($discOpsValue) + else + if $continuingOpsValue.length > 0 + max($continuingOpsValue) + else + skip + +$discOpsMaterialityFlag = if (abs($MaxValueOfDiscOps) > abs(max($continuingOpsValue)) * 0.05) + true + else + false + count(list([@NetCashProvidedByUsedInOperatingActivities])) == 0 and count(list([@NetCashProvidedByUsedInOperatingActivitiesContinuingOperations]#fact1))!= 0 and -count(list([@CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations]))== 0 +count(list([@CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations]))== 0 and +$discOpsMaterialityFlag message "This rule reflects updated guidance from the Data Quality Committee which contradicts with historical rules. This is a change based on the changes in the cashflow ASU published by FASB. diff --git a/dqc_us_rules/source/us/2019/constant.xule b/dqc_us_rules/source/us/2019/constant.xule index a3b64abcdc..773fc7fce8 100644 --- a/dqc_us_rules/source/us/2019/constant.xule +++ b/dqc_us_rules/source/us/2019/constant.xule @@ -164,6 +164,10 @@ constant $income_items = set(ProfitLoss, InvestmentCompanyNetAssetsFromOperationsIncreaseDecrease ) +constant $DISCONTINUED_INCOME_ITEMS = set(IncomeLossFromDiscontinuedOperationsNetOfTax, + IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToNoncontrollingInterest, + IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity) + constant $MONETARY_NON_NEGS = filter $non_neg_items.keys where taxonomy().concept($item).is-monetary returns taxonomy().concept($item) constant $BANKING_MEASURES_BETWEEN_ZERO_AND_ONE = navigate parent-child descendants from list(RiskBasedRatiosAbstract, LeverageRatiosAbstract) taxonomy $us-gaap where $relationship.target.data-type.name == xbrli:pureItemType returns set (target-name) diff --git a/dqc_us_rules/source/us/2020/DQC_0043.xule b/dqc_us_rules/source/us/2020/DQC_0043.xule index 8e9bf6d15b..f13af14c1e 100644 --- a/dqc_us_rules/source/us/2020/DQC_0043.xule +++ b/dqc_us_rules/source/us/2020/DQC_0043.xule @@ -142,6 +142,7 @@ for $IncomeItem in (($income_items) - set(DiscontinuedOperationGainLossOnDisposa false else $signFlag = "negative" + $messageText = "The company has reported the concept " + $IncomeItem.local-name + " as part of the cash flow statement. This income item is being deducted from the value of operating cash flows in the calculation defined by the filer. This implies that the resulting operating cash flow calculation excludes this income item from cash flow from operations. If " + $IncomeItem.local-name + " represents income from discontinued operations then the element NetCashProvidedByUsedInOperatingActivitiesContinuingOperations should be used as the total rather than the current total element of NetCashProvidedByUsedInOperatingActivities. If the item is an income item and is being deducted because the value is negative then consider changing the sign and weight of the element." effective_weight_is_negative($Operating, $IncomeItem) else $discOPs = set(DiscontinuedOperationIncomeLossFromDiscontinuedOperationBeforeIncomeTax, IncomeLossFromDiscontinuedOperationsNetOfTax, @@ -149,12 +150,13 @@ for $IncomeItem in (($income_items) - set(DiscontinuedOperationGainLossOnDisposa IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity) if $IncomeItem in $discOPs $signFlag = "positive" + $messageText = "The company has reported the concept " + $IncomeItem.local-name + " as part of the cash flow statement. This income item is being added to the value of operating cash flows in the calculation defined by the filer. This implies that the resulting operating cash flow calculation includes this income item in cash flow from operations. If " + $IncomeItem.local-name + " represents income from discontinued operations then the element NetCashProvidedByUsedInOperatingActivities should be used as the total rather than the current total element of NetCashProvidedByUsedInOperatingActivitiesContinuingOperations." effective_weight_is_positive($Operating, $IncomeItem) else false message -"The company has reported the concept {$IncomeItem} as a {$signFlag} weight descendant of Operating cash flows in the calculation linkbase of the filing. This element must make a {$signFlag} cash contribution to operating cash flows when the element {$Operating} is used. +"{$messageText} Rule Element Id:{$ruleId} Rule version: {$ruleVersion}" diff --git a/dqc_us_rules/source/us/2020/DQC_0060.xule b/dqc_us_rules/source/us/2020/DQC_0060.xule index 37b48f9883..7e8e905aaf 100644 --- a/dqc_us_rules/source/us/2020/DQC_0060.xule +++ b/dqc_us_rules/source/us/2020/DQC_0060.xule @@ -68,9 +68,30 @@ assert US.0060.7497 satisfied $rule_id = (rule-name().split('.'))[rule-name().split('.').length]; +/** The discOpsMaterialityFlag is added to address those cases where the value has used cashflow from continuing ops, but the filer has no disc ops from cash flow + because it is immaterial. We asses this situation if the filer reported discontinued operations from income and the value of this is less than 5% of + cash flow from continuing ops. If the filer has used continuing ops by mistake this will get picked up if they have no Disc ops income and if disc ops + income is more than 5% of cash flow from continuing ops. **/ + +$discOpsValue = (list([nonils @concept in $DISCONTINUED_INCOME_ITEMS])) +$continuingOpsValue = list([@concept = NetCashProvidedByUsedInOperatingActivitiesContinuingOperations]) +$MaxValueOfDiscOps = if $discOpsValue.length > 0 + max($discOpsValue) + else + if $continuingOpsValue.length > 0 + max($continuingOpsValue) + else + skip + +$discOpsMaterialityFlag = if (abs($MaxValueOfDiscOps) > abs(max($continuingOpsValue)) * 0.05) + true + else + false + count(list([@NetCashProvidedByUsedInOperatingActivities])) == 0 and count(list([@NetCashProvidedByUsedInOperatingActivitiesContinuingOperations]#fact1))!= 0 and -count(list([@CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations]))== 0 +count(list([@CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations]))== 0 and +$discOpsMaterialityFlag message "This rule reflects updated guidance from the Data Quality Committee which contradicts with historical rules. This is a change based on the changes in the cashflow ASU published by FASB. diff --git a/dqc_us_rules/source/us/2020/constant.xule b/dqc_us_rules/source/us/2020/constant.xule index cdbf145b97..3508cdba72 100644 --- a/dqc_us_rules/source/us/2020/constant.xule +++ b/dqc_us_rules/source/us/2020/constant.xule @@ -189,6 +189,10 @@ constant $income_items = set(ProfitLoss, InvestmentCompanyNetAssetsFromOperationsIncreaseDecrease ) +constant $DISCONTINUED_INCOME_ITEMS = set(IncomeLossFromDiscontinuedOperationsNetOfTax, + IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToNoncontrollingInterest, + IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity) + constant $PRES_NETWORKS = taxonomy().networks(parent-child) constant $CALC_NETWORKS = $us-gaap.networks(summation-item) diff --git a/dqc_us_rules/source/us/2021/DQC_0043.xule b/dqc_us_rules/source/us/2021/DQC_0043.xule index fa29e11ab7..e3d86d3625 100644 --- a/dqc_us_rules/source/us/2021/DQC_0043.xule +++ b/dqc_us_rules/source/us/2021/DQC_0043.xule @@ -142,6 +142,7 @@ for $IncomeItem in (($INCOME_ITEMS) - set(DiscontinuedOperationGainLossOnDisposa false else $signFlag = "negative" + $messageText = "The company has reported the concept " + $IncomeItem.local-name + " as part of the cash flow statement. This income item is being deducted from the value of operating cash flows in the calculation defined by the filer. This implies that the resulting operating cash flow calculation excludes this income item from cash flow from operations. If " + $IncomeItem.local-name + " represents income from discontinued operations then the element NetCashProvidedByUsedInOperatingActivitiesContinuingOperations should be used as the total rather than the current total element of NetCashProvidedByUsedInOperatingActivities. If the item is an income item and is being deducted because the value is negative then consider changing the sign and weight of the element." effective_weight_is_negative($Operating, $IncomeItem) else $discOPs = set(DiscontinuedOperationIncomeLossFromDiscontinuedOperationBeforeIncomeTax, IncomeLossFromDiscontinuedOperationsNetOfTax, @@ -149,12 +150,13 @@ for $IncomeItem in (($INCOME_ITEMS) - set(DiscontinuedOperationGainLossOnDisposa IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity) if $IncomeItem in $discOPs $signFlag = "positive" + $messageText = "The company has reported the concept " + $IncomeItem.local-name + " as part of the cash flow statement. This income item is being added to the value of operating cash flows in the calculation defined by the filer. This implies that the resulting operating cash flow calculation includes this income item in cash flow from operations. If " + $IncomeItem.local-name + " represents income from discontinued operations then the element NetCashProvidedByUsedInOperatingActivities should be used as the total rather than the current total element of NetCashProvidedByUsedInOperatingActivitiesContinuingOperations." effective_weight_is_positive($Operating, $IncomeItem) else false message -"The company has reported the concept {$IncomeItem} as a {$signFlag} weight descendant of Operating cash flows in the calculation linkbase of the filing. This element must make a {$signFlag} cash contribution to operating cash flows when the element {$Operating} is used. +"{$messageText} Rule Element Id:{$ruleId} Rule version: {$ruleVersion}" diff --git a/dqc_us_rules/source/us/2021/DQC_0060.xule b/dqc_us_rules/source/us/2021/DQC_0060.xule index 37b48f9883..9f85e1c9ab 100644 --- a/dqc_us_rules/source/us/2021/DQC_0060.xule +++ b/dqc_us_rules/source/us/2021/DQC_0060.xule @@ -41,9 +41,30 @@ assert US.0060.7496 satisfied $rule_id = (rule-name().split('.'))[rule-name().split('.').length]; -count(list([@NetCashProvidedByUsedInInvestingActivities])) == 0 and -count(list([@NetCashProvidedByUsedInInvestingActivitiesContinuingOperations]#fact1))!= 0 and -count(list([@CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations]))== 0 +/** The discOpsMaterialityFlag is added to address those cases where the value has used cashflow from continuing ops, but the filer has no disc ops from cash flow + because it is immaterial. We asses this situation if the filer reported discontinued operations from income and the value of this is less than 5% of + cash flow from continuing ops. If the filer has used continuing ops by mistake this will get picked up if they have no Disc ops income and if disc ops + income is more than 5% of cash flow from continuing ops. **/ + +$discOpsValue = (list([nonils @concept in $DISCONTINUED_INCOME_ITEMS])) +$continuingOpsValue = list([@concept = NetCashProvidedByUsedInOperatingActivitiesContinuingOperations]) +$MaxValueOfDiscOps = if $discOpsValue.length > 0 + max($discOpsValue) + else + if $continuingOpsValue.length > 0 + max($continuingOpsValue) + else + skip + +$discOpsMaterialityFlag = if (abs($MaxValueOfDiscOps) > abs(max($continuingOpsValue)) * 0.05) + true + else + false + +count(list([@NetCashProvidedByUsedInOperatingActivities])) == 0 and +count(list([@NetCashProvidedByUsedInOperatingActivitiesContinuingOperations]#fact1))!= 0 and +count(list([@CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations]))== 0 and +$discOpsMaterialityFlag message diff --git a/dqc_us_rules/source/us/2021/constant.xule b/dqc_us_rules/source/us/2021/constant.xule index 3a67e0b064..8f27b69da0 100644 --- a/dqc_us_rules/source/us/2021/constant.xule +++ b/dqc_us_rules/source/us/2021/constant.xule @@ -183,6 +183,10 @@ constant $INCOME_ITEMS = set( InvestmentCompanyNetAssetsFromOperationsIncreaseDecrease ) +constant $DISCONTINUED_INCOME_ITEMS = set(IncomeLossFromDiscontinuedOperationsNetOfTax, + IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToNoncontrollingInterest, + IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity) + constant $PRES_NETWORKS = taxonomy().networks(parent-child) constant $CALC_NETWORKS = $US-GAAP.networks(summation-item) diff --git a/dqc_us_rules/source/us/2022/DQC_0043.xule b/dqc_us_rules/source/us/2022/DQC_0043.xule index de8c2a78b3..44093a5ec6 100644 --- a/dqc_us_rules/source/us/2022/DQC_0043.xule +++ b/dqc_us_rules/source/us/2022/DQC_0043.xule @@ -144,6 +144,7 @@ for $IncomeItem in (($INCOME_ITEMS) - set(DiscontinuedOperationGainLossOnDisposa false else $signFlag = "negative" + $messageText = "The company has reported the concept " + $IncomeItem.local-name + " as part of the cash flow statement. This income item is being deducted from the value of operating cash flows in the calculation defined by the filer. This implies that the resulting operating cash flow calculation excludes this income item from cash flow from operations. If " + $IncomeItem.local-name + " represents income from discontinued operations then the element NetCashProvidedByUsedInOperatingActivitiesContinuingOperations should be used as the total rather than the current total element of NetCashProvidedByUsedInOperatingActivities. If the item is an income item and is being deducted because the value is negative then consider changing the sign and weight of the element." effective_weight_is_negative($Operating, $IncomeItem) else $discOPs = set(DiscontinuedOperationIncomeLossFromDiscontinuedOperationBeforeIncomeTax, IncomeLossFromDiscontinuedOperationsNetOfTax, @@ -151,12 +152,13 @@ for $IncomeItem in (($INCOME_ITEMS) - set(DiscontinuedOperationGainLossOnDisposa IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity) if $IncomeItem in $discOPs $signFlag = "positive" + $messageText = "The company has reported the concept " + $IncomeItem.local-name + " as part of the cash flow statement. This income item is being added to the value of operating cash flows in the calculation defined by the filer. This implies that the resulting operating cash flow calculation includes this income item in cash flow from operations. If " + $IncomeItem.local-name + " represents income from discontinued operations then the element NetCashProvidedByUsedInOperatingActivities should be used as the total rather than the current total element of NetCashProvidedByUsedInOperatingActivitiesContinuingOperations." effective_weight_is_positive($Operating, $IncomeItem) else false message -"The company has reported the concept {$IncomeItem} as a {$signFlag} weight descendant of Operating cash flows in the calculation linkbase of the filing. This element must make a {$signFlag} cash contribution to operating cash flows when the element {$Operating} is used. +"{$messageText} Rule Element Id:{$ruleId} Rule version: {$ruleVersion}" diff --git a/dqc_us_rules/source/us/2022/DQC_0060.xule b/dqc_us_rules/source/us/2022/DQC_0060.xule index 9fd5a45e52..f64f40eb90 100644 --- a/dqc_us_rules/source/us/2022/DQC_0060.xule +++ b/dqc_us_rules/source/us/2022/DQC_0060.xule @@ -68,9 +68,30 @@ assert US.0060.7497 satisfied $rule_id = (rule-name().split('.'))[rule-name().split('.').length]; +/** The discOpsMaterialityFlag is added to address those cases where the value has used cashflow from continuing ops, but the filer has no disc ops from cash flow + because it is immaterial. We asses this situation if the filer reported discontinued operations from income and the value of this is less than 5% of + cash flow from continuing ops. If the filer has used continuing ops by mistake this will get picked up if they have no Disc ops income and if disc ops + income is more than 5% of cash flow from continuing ops. **/ + +$discOpsValue = (list([nonils @concept in $DISCONTINUED_INCOME_ITEMS])) +$continuingOpsValue = list([@concept = NetCashProvidedByUsedInOperatingActivitiesContinuingOperations]) +$MaxValueOfDiscOps = if $discOpsValue.length > 0 + max($discOpsValue) + else + if $continuingOpsValue.length > 0 + max($continuingOpsValue) + else + skip + +$discOpsMaterialityFlag = if (abs($MaxValueOfDiscOps) > abs(max($continuingOpsValue)) * 0.05) + true + else + false + count(list([@NetCashProvidedByUsedInOperatingActivities])) == 0 and count(list([@NetCashProvidedByUsedInOperatingActivitiesContinuingOperations]#fact1))!= 0 and -count(list([@CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations]))== 0 +count(list([@CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations]))== 0 and +$discOpsMaterialityFlag message "This rule reflects updated guidance from the Data Quality Committee which contradicts with historical rules. This is a change based on the changes in the cashflow ASU published by FASB. diff --git a/dqc_us_rules/source/us/2022/DQC_0142.xule b/dqc_us_rules/source/us/2022/DQC_0142.xule index 8d9daa6fb0..9cbb3593ea 100644 --- a/dqc_us_rules/source/us/2022/DQC_0142.xule +++ b/dqc_us_rules/source/us/2022/DQC_0142.xule @@ -36,7 +36,7 @@ if $srttaxonomy $BDCInvestmentFact = {@$typedDimension = *} - $Legitimateimensions = $BDCInvestmentFact.dimensions.keys.name - set(us-gaap-supplement:InvestmentCompanyNonconsolidatedSubsidiaryAxis); + $Legitimateimensions = $BDCInvestmentFact.dimensions.keys.name - set(us-gaap-supplement:InvestmentCompanyNonconsolidatedSubsidiaryAxis, srt:RangeAxis); $Legitimateimensions.length > 1 else false diff --git a/dqc_us_rules/source/us/2022/constant.xule b/dqc_us_rules/source/us/2022/constant.xule index e32e6afadd..3bb599a891 100644 --- a/dqc_us_rules/source/us/2022/constant.xule +++ b/dqc_us_rules/source/us/2022/constant.xule @@ -177,6 +177,10 @@ constant $INCOME_ITEMS = set( InvestmentCompanyNetAssetsFromOperationsIncreaseDecrease ) +constant $DISCONTINUED_INCOME_ITEMS = set(IncomeLossFromDiscontinuedOperationsNetOfTax, + IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToNoncontrollingInterest, + IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity) + constant $PRES_NETWORKS = taxonomy().networks(parent-child) constant $CALC_NETWORKS = $US-GAAP.networks(summation-item) diff --git a/dqc_us_rules/source/us/2023/DQC_0043.xule b/dqc_us_rules/source/us/2023/DQC_0043.xule index 9faa7f633b..28953122b9 100644 --- a/dqc_us_rules/source/us/2023/DQC_0043.xule +++ b/dqc_us_rules/source/us/2023/DQC_0043.xule @@ -142,6 +142,7 @@ for $IncomeItem in (($INCOME_ITEMS) - set(DiscontinuedOperationGainLossOnDisposa false else $signFlag = "negative" + $messageText = "The company has reported the concept " + $IncomeItem.local-name + " as part of the cash flow statement. This income item is being deducted from the value of operating cash flows in the calculation defined by the filer. This implies that the resulting operating cash flow calculation excludes this income item from cash flow from operations. If " + $IncomeItem.local-name + " represents income from discontinued operations then the element NetCashProvidedByUsedInOperatingActivitiesContinuingOperations should be used as the total rather than the current total element of NetCashProvidedByUsedInOperatingActivities. If the item is an income item and is being deducted because the value is negative then consider changing the sign and weight of the element." effective_weight_is_negative($Operating, $IncomeItem) else $discOPs = set(DiscontinuedOperationIncomeLossFromDiscontinuedOperationBeforeIncomeTax, IncomeLossFromDiscontinuedOperationsNetOfTax, @@ -149,12 +150,13 @@ for $IncomeItem in (($INCOME_ITEMS) - set(DiscontinuedOperationGainLossOnDisposa IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity) if $IncomeItem in $discOPs $signFlag = "positive" + $messageText = "The company has reported the concept " + $IncomeItem.local-name + " as part of the cash flow statement. This income item is being added to the value of operating cash flows in the calculation defined by the filer. This implies that the resulting operating cash flow calculation includes this income item in cash flow from operations. If " + $IncomeItem.local-name + " represents income from discontinued operations then the element NetCashProvidedByUsedInOperatingActivities should be used as the total rather than the current total element of NetCashProvidedByUsedInOperatingActivitiesContinuingOperations." effective_weight_is_positive($Operating, $IncomeItem) else false message -"The company has reported the concept {$IncomeItem} as a {$signFlag} weight descendant of Operating cash flows in the calculation linkbase of the filing. This element must make a {$signFlag} cash contribution to operating cash flows when the element {$Operating} is used. +"{$messageText} Rule Element Id:{$ruleId} Rule version: {$ruleVersion}" diff --git a/dqc_us_rules/source/us/2023/DQC_0060.xule b/dqc_us_rules/source/us/2023/DQC_0060.xule index 9fd5a45e52..f64f40eb90 100644 --- a/dqc_us_rules/source/us/2023/DQC_0060.xule +++ b/dqc_us_rules/source/us/2023/DQC_0060.xule @@ -68,9 +68,30 @@ assert US.0060.7497 satisfied $rule_id = (rule-name().split('.'))[rule-name().split('.').length]; +/** The discOpsMaterialityFlag is added to address those cases where the value has used cashflow from continuing ops, but the filer has no disc ops from cash flow + because it is immaterial. We asses this situation if the filer reported discontinued operations from income and the value of this is less than 5% of + cash flow from continuing ops. If the filer has used continuing ops by mistake this will get picked up if they have no Disc ops income and if disc ops + income is more than 5% of cash flow from continuing ops. **/ + +$discOpsValue = (list([nonils @concept in $DISCONTINUED_INCOME_ITEMS])) +$continuingOpsValue = list([@concept = NetCashProvidedByUsedInOperatingActivitiesContinuingOperations]) +$MaxValueOfDiscOps = if $discOpsValue.length > 0 + max($discOpsValue) + else + if $continuingOpsValue.length > 0 + max($continuingOpsValue) + else + skip + +$discOpsMaterialityFlag = if (abs($MaxValueOfDiscOps) > abs(max($continuingOpsValue)) * 0.05) + true + else + false + count(list([@NetCashProvidedByUsedInOperatingActivities])) == 0 and count(list([@NetCashProvidedByUsedInOperatingActivitiesContinuingOperations]#fact1))!= 0 and -count(list([@CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations]))== 0 +count(list([@CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations]))== 0 and +$discOpsMaterialityFlag message "This rule reflects updated guidance from the Data Quality Committee which contradicts with historical rules. This is a change based on the changes in the cashflow ASU published by FASB. diff --git a/dqc_us_rules/source/us/2023/DQC_0142.xule b/dqc_us_rules/source/us/2023/DQC_0142.xule index 0ba53725dc..cc2f995ac0 100644 --- a/dqc_us_rules/source/us/2023/DQC_0142.xule +++ b/dqc_us_rules/source/us/2023/DQC_0142.xule @@ -28,7 +28,7 @@ $ruleId = (rule-name().split('.'))[rule-name().split('.').length]; $BDCInvestmentFact = {@$typedDimension = *} - $Legitimateimensions = $BDCInvestmentFact.dimensions.keys.name - set(InvestmentCompanyNonconsolidatedSubsidiaryAxis); + $Legitimateimensions = $BDCInvestmentFact.dimensions.keys.name - set(InvestmentCompanyNonconsolidatedSubsidiaryAxis, srt:RangeAxis); $Legitimateimensions.length > 1 diff --git a/dqc_us_rules/source/us/2023/constant.xule b/dqc_us_rules/source/us/2023/constant.xule index d298e712cc..a8788f4454 100644 --- a/dqc_us_rules/source/us/2023/constant.xule +++ b/dqc_us_rules/source/us/2023/constant.xule @@ -175,6 +175,10 @@ constant $INCOME_ITEMS = set( InvestmentCompanyNetAssetsFromOperationsIncreaseDecrease ) +constant $DISCONTINUED_INCOME_ITEMS = set(IncomeLossFromDiscontinuedOperationsNetOfTax, + IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToNoncontrollingInterest, + IncomeLossFromDiscontinuedOperationsNetOfTaxAttributableToReportingEntity) + constant $PRES_NETWORKS = taxonomy().networks(parent-child) constant $CALC_NETWORKS = $US-GAAP.networks(summation-item)