## Rule function

Appendix
See table below for updates effective September 30, 2019.

This rule tests that the values reported between element relationships that are identified as an accounting constant are consistent within the filing. For example Assets equals Liability and Equity. The rule checks that the components of the calculation are present before checking the calculation. In some cases the components may not be present but their children are. In these cases the value can be derived by adding values across a dimension. The rule executes across all dimensions defined in the filing. If Assets Liabilities and Equity are defined for three separate legal entities the rule will check all three legal entities.The table below lists the defined calculations and the components that must be present for the rule to run. If a component is not required and the value is not present it is treated as having a value of zero.

In evaluating equivalents the values are assessed based on the lowest decimal value. For example, if a value of 3 million with decimals of -6 is compared to a value of 3,100,000 with decimals of -5 then the values will be considered to be equivalent as both values will be rounded to a million (decimals of -6).

## Problem solved by the rule

The rule identifies the following issues in a filing

• Values have been entered correctly
• The correct element has been used to report a value
• The calculation relationship has been defined correctly in the filing.

These issues are a problem for consumption because the data will be extracted incorrectly for analysis.

## Example rule message1

Assets with a value of 340,000,000 is not equal to the total of Liabilities and Equity with a value of 350,000,000. These values should be equal.

The properties of this us-gaap:Assets fact are:

Period: 2014-12-31
Dimensions: none
Unit: USD
Rule version: 1.0

## For Developers

The Global Rule Logic document contains general guidelines for implementation of rules. The rule message template contains text and parametric reference to arguments of the rule operation, using the syntax \${parameter} to indicate that insertion of a parameter’s value is to occur.

### Message template

\${fact1.label} with a value of \${fact1.value} is not equal to the total of \${fact2.label} with a value of \${fact2.value}. These values should be equal.

The properties of this \${fact1.name} fact are:

Period :\${fact1.period}
Dimensions : \${fact1.dimensions}
Unit : \${fact1.unit}
Rule Version : \${ruleVersion}

### Rule element ID index

The rule element id is used to identify unique elements or combinations of elements tested in the rule.

The required facts column indicates that the facts for these concepts must exist in the filing for the rule to execute. If a component of the equation is missing and the concept is required the rule will not execute. If a concept is not required and is missing it will be treated as if it has a value of zero.

• LiabilitiesAndStockholdersEquity
• StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
• Liabilities
• TemporaryEquityCarryingAmountIncludingPortionAttributableToNoncontrollingInterests
 Rule ID Relationship Required Facts 16 Assets = LiabilitiesAndStockholdersEquity Tolerance = 2 Assets LiabilitiesAndStockholdersEquity Rules listed below are effective with filings as of September 30, 2019. 9280 Assets = AssetsCurrent + AssetsNoncurrent Tolerance = 2 Assets AssetsCurrent AssetsNoncurrent 9281 Liabilities = LiabilitiesCurrent + LiabilitiesNoncurrent Tolerance = 2 Liabilities LiabilitiesCurrent LiabilitiesNoncurrent 9282 StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest = StockholdersEquity + MinorityInterest Tolerance = 2 StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest StockholdersEquity MinorityInterest This rule does not run when the consolidation item axis is used on the facts used in the equation. This is because items often classified as liabilities are eliminated through the equity section in a consolidated schedule. 9283 LiabilitiesAndStockholdersEquity = StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest + Liabilities + TemporaryEquityCarryingAmountIncludingPortionAttributableToNoncontrollingInterests Tolerance = 2 If StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest is not available in the default then the following logic applies to derive a value: StockholdersEquity + MinorityInterest (Stockholders equity must be present)If Liabilities is not available in the default then the following logic applies to derive a value: LiabilitiesCurrent + LiabilitiesNoncurrent (Both must be present for rule to run) 9284 ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest = ProfitLoss + OtherComprehensiveIncomeLossNetOfTax Tolerance = 2 ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest ProfitLoss OtherComprehensiveIncomeLossNetOfTax 9285 ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest = ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest + ComprehensiveIncomeNetOfTax Tolerance = 2 ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterest ComprehensiveIncomeNetOfTaxAttributableToNoncontrollingInterest ComprehensiveIncomeNetOfTax 9286 CashCashEquivalentsRestrictedCashAndRestricted CashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect or CashAndCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect = NetCashProvidedByUsedInOperatingActivities + NetCashProvidedByUsedInInvestingActivities + NetCashProvidedByUsedInFinancingActivitiesTolerance = 2 CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect CashAndCashEquivalentsPeriodIncreaseDecreaseExcludingExchangeRateEffect NetCashProvidedByUsedInOperatingActivities NetCashProvidedByUsedInInvestingActivities NetCashProvidedByUsedInFinancingActivities 9287 NetCashProvidedByUsedInFinancingActivities = NetCashProvidedByUsedInFinancingActivitiesContinuingOperations + CashProvidedByUsedInFinancingActivitiesDiscontinuedOperations Tolerance = 2 NetCashProvidedByUsedInFinancingActivities NetCashProvidedByUsedInFinancingActivitiesContinuingOperations CashProvidedByUsedInFinancingActivitiesDiscontinuedOperations 9288 NetCashProvidedByUsedInInvestingActivities = NetCashProvidedByUsedInInvestingActivitiesContinuingOperations + CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations Tolerance = 2 NetCashProvidedByUsedInInvestingActivities NetCashProvidedByUsedInInvestingActivitiesContinuingOperations CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations 9289 NetCashProvidedByUsedInOperatingActivities = NetCashProvidedByUsedInOperatingActivitiesContinuingOperations + CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations Tolerance = 2 NetCashProvidedByUsedInOperatingActivities NetCashProvidedByUsedInOperatingActivitiesContinuingOperations CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations 9290 NetCashProvidedByUsedInDiscontinuedOperations = CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations + CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations + CashProvidedByUsedInFinancingActivitiesDiscontinuedOperations Tolerance = 2 NetCashProvidedByUsedInDiscontinuedOperations CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations CashProvidedByUsedInInvestingActivitiesDiscontinuedOperations CashProvidedByUsedInFinancingActivitiesDiscontinuedOperations 9291 NetCashProvidedByUsedInContinuingOperations = NetCashProvidedByUsedInOperatingActivitiesContinuingOperations + NetCashProvidedByUsedInFinancingActivitiesContinuingOperations + NetCashProvidedByUsedInInvestingActivitiesContinuingOperations Tolerance = 2 NetCashProvidedByUsedInContinuingOperations NetCashProvidedByUsedInOperatingActivitiesContinuingOperations NetCashProvidedByUsedInInvestingActivitiesContinuingOperations NetCashProvidedByUsedInFinancingActivitiesContinuingOperations

1Presentation style of rule messages may differ among software implementations of the rules.

View: as part of approved release v9.0.0 || public exposure version & comments.