21st XBRL International Conference “One Language, Common Vision: Role of XBRL Technology in the Post Crisis Era 19-21 October 2010 Beijing, China. XBRL Technology Track Base Spec Working Group Update Herm Fischer. Activities since last conference. Calculation arcs precision problems
21st XBRL International Conference“One Language, Common Vision: Role of XBRL Technology in the Post Crisis Era19-21 October 2010Beijing, China
XBRL Technology Track
Base Spec Working Group Update
The total of a binding calculation is defined to be the sum of the rounded values of the contributing numeric items in the binding, each multiplied by the value of the weight attribute on the item's associated calculationArc. This multiplication takes place after any necessary rounding is performed. The rounded value of a numeric item is the result of rounding the value of the numeric item to its precision decimals or inferred precision decimals (see Section 4.6.6 and ). A binding calculation is defined to be consistent if the rounded value of the summation item is equal to the total rounded to the precision decimals or inferred precision decimals of the summation item. (If any item of the calculation has a precision attribute value 0 then the binding calculation is deemed to be inconsistent.)
The following rules enable XBRL instance consumers to infer a value for the precision decimals attribute of a numeric item when none is supplied.For a numeric item of type fractionItemType or type derived by restriction from fractionItemType, a consuming application MUST infer the precision decimals to be equal to 'INF' if it is to be used in calculations.If, on a numeric item, the decimals precision attribute is present rather than the precision decimals attribute, then a consuming application MUST infer the precision decimals of that numeric fact if it is to be used in calculations or searches for duplicates in XBRL instances.
Given the value of the decimals precision attribute, if the precision of a numeric item is equal to n, where n is equal to 0, nothing is known about the precision of the number, nothing can be inferred about decimals, and thus any consuming v-equals comparison must be false, and any calculation link summation involving the item must be inconsistent.If the value of the precision attribute is INF then the inferred decimals value is INF.If the value of the precision attribute is not INF and greater than 0 then the decimals value is:For an item of numeric value 0, the inferred decimals is deemed to be INF, treating data values of zero as a singularity of infinite decimals accuracy (regardless of non-zero value of precision attribute or item syntax, e.g., 0, or 000, or .00).
Otherwise the inferred decimals is given by the following expression: 1 + precision - int(log10(abs(number(item)))), where precision is the value of the precision attribute, int( ) a function returning the integer part of its argument, log10( ) a function returning the logarithm base 10 of its argument, abs( ) a function returning the absolute value of its argument, number( ) a function providing a numeric conversion if its argument is not internally numeric (as may be needed for the math computations), and item is the item's value (PSVI typed numeric node value if available, or otherwise inner text of numeric item node).
the maximum of 0 and the result of the following calculation:if there are non-zero digits to the left of the decimal point or implied decimal point if absent then the number of digits excluding any leading zeros to the left of the decimal point (or implied decimal point if absent) in the lexical representation of the numerical factotherwise if there are non-zero digits to the right of the decimal point, the negative of the number of zeros between the decimal point and the first non-zero digit in the lexical representation of the numerical factotherwise zeroplus the value of the exponent in the lexical representation of the numerical fact (if present) plus the number of decimal places to which the numeric fact is known to be correct.