Rule function
This rule identifies if the revenue/cost elements RevenueFromContractWithCustomerIncludingAssessedTax, RevenueFromContractWithCustomerExcludingAssessedTax and CostOfGoodsAndServicesSold have been used with the ProductOrServiceAxis for only one product or service represented by a single member on the product or service axis. The rule flags an error if either of these three elements has only a single member (Other than the ProductsAndServicesDomain) on the ProductOrServiceAxis and if a total value for the element of the product and service axis has not been reported in the filing.
The rule flags an error for every instance of a fact value with the line items listed above in every statement table (XBRL cube) they appear, where a single member has been used as a domain-member child of the element ProductsAndServicesDomain in that statement table. Statement tables are those tables that have the role description containing the text string “- Statement “.
Problem solved by the rule
The FASB guidance related to Revenue Recognition allows companies to break down Revenues and COGS by products and services sold by the company. However, in those cases where a company has only one product or service they should not disaggregate it by that sole product. Instead they should use the default total and indicate the specific product or service using the extensible list element TypeOfRevenueExtensibleList or TypeOfCostGoodOrServiceExtensibleList. If the company has provided the aggregate total it is allowable to also report the disaggregated amount by the single dimension member.
Example rule message
The filing has reported a value for the element us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax with a value of 38,818,000 using the ProductOrServiceAxis in the role 40201 – Disclosure – Summary of Significant Accounting Policies – (Details) on the table us-gaap:StatementTable. However, the only member used to disaggregate the total for us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax was the member us-gaap:ProductMember. If only one member is used on this axis then the filer should either:
- Retag the filing using the element TypeOfRevenueExtensibleList/TypeOfCostGoodOrServiceExtensibleList with a value of us-gaap:ProductMember and the member us-gaap:ProductMember should be removed from the value as it represents the aggregate value of us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax.
- Tag the aggregate value of us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax with a value of 38,818,000 without the product of service axis. This rule will not generate an error if the aggregate value of us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax is reported.
The properties of this us-gaap:RevenueFromContractWithCustomerIncludingAssessedTax fact are:
Period: 2018-01-01 to 2018-03-31
Dimensions: us-gaap:ProductOrServiceAxis=us-gaap:ProductMember
Unit: USD
Rule Element Id: 7646
Rule version: 7.0.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
The filing has reported a value for the element {$Revenue.concept} with a value of {$Revenue} using the ProductOrServiceAxis in the role {$table.drs-role.description} on the table {$table.cube-concept()}. However, the only member used to disaggregate the total for {$Revenue.concept} was the member {$Revenue.dimension(ProductOrServiceAxis)}. If only one member is used on this axis then the filer should either:
- Retag the filing using the element TypeOfRevenueExtensibleList/TypeOfCostGoodOrServiceExtensibleList with a value of {$Revenue.dimension(srt:ProductOrServiceAxis)} and the member {$Revenue.dimension(srt:ProductOrServiceAxis)} should be removed from the value as it represents the aggregate value of {$Revenue.concept}.
- Tag the aggregate value of {$Revenue.concept} with a value of {$Revenue} without the product of service axis. This rule will not generate an error if the aggregate value of {$Revenue.concept} is reported.
The properties of this {$Revenue.concept} fact are:
Period: {$Revenue.period}
Dimensions: {$Revenue.dimensions.join(‘, ‘,’=’)}
Unit: {$Revenue.unit}
Rule Element Id: 7646
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.
Rule Element ID | Elements |
---|---|
DQC.US.0071.7646 | RevenueFromContractWithCustomerIncludingAssessedTax RevenueFromContractWithCustomerExcludingAssessedTax CostOfGoodsAndServicesSold |
View: as part of approved release v9.0.0 || public exposure version & comments.