Understanding XBRL Calculations

The balance type of an element is an inherent property set by US-GAAP. Elements usually have a default balance type assigned to them (debit or credit), according to the basic rule of double entry accounting. Assets and expenses have a normal balance type of “debit” while equity, liabilities and revenues have a normal balance type of “credit”.

The basic accounting equation that is the foundation for this type of accounting appears as follows:

Assets = Liabilities + Capital (or Stockholder’s Equity)

The left side of the equation is composed of elements that normally have a debit balance type. The term “Assets” in the equation refers to the sum of all assets. The right side is composed of elements that normally have a credit balance type. “Liabilities” and “Capital” refer to the sum of all liabilities and the sum of all capital/equity, respectively.

Balance types have nothing at all to do with whether a fact is positive or negative. They group assets and expenses together and liabilities and capital (equity) together.

The rules for calculations are very simple. When elements interact in a calculation, they must do so according to the following principals:

 
Credit + Credit
 
Debit + Debit
 
 
Credit - Debit
 
Debit - Credit
 

These principals are related to the basic accounting equation mentioned earlier. All elements that are categorized as “assets” are debit elements and can be added together. All elements that are categorized as “liabilities” or “equity” are credit elements can be added together. If you want to use a liability element in the sum of your assets, you must subtract it from the sum of the asset elements.

Much of the confusion for XBRL calculations can occur when looking at an HTML document. The parenthesis on an HTML document can mean two different things:

  1. a negative number
  2. the subtraction operand

For those without much accounting knowledge, it can be difficult to determine which is the case. In an XBRL report, the difference must be correctly distinguished so the underlying fact data is correct. Some elements can not have a negative fact value associated with them, but it is possible for a user to add use a negative number accidentally for these elements because  he or she is  attempting to match the appearance of the official HTML document.

GoFiler’s warnings about incorrect calculation math are meant to help  the user detect when a negative (or positive) number for  an underlying fact is incorrect when the actual situation is that a subtraction operation is taking place in the calculation.

Here's a fairly common example:

Sample HTML Table

Directly translated to XBRL with elements assigned and the facts entered exactly as above, treating the parenthesis as an indication of a negative number:

Sample Table brought into XBRL View

In this example, we chose the following elements: Land, MachineryAndEquipmentGross, AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment, and PropertyPlantAndEquipmentNet. Note that the facts for this data were entered as 100, 200, -50, and 250.

Sample Table with additional comments XBRL View

This is a table of assets with one liability used within it. To the right of the data are comments showing the normal balance types assigned by US-GAAP to describe assets and liabilities.

Once the element selection is finished, the calculation must be added to the presentation. Following the rules for calculations stated above, the calculation will be:

+ Land
+ MachineryAndEquipmentGross
- AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment 

When the report is validated, the following warning will appear:

Warning: Cell B7: The calculated value (350) does not equal the fact value (250). A difference of 100.

Looking at the math, the mistake becomes obvious. The calculation isn't reflected on the sheet. When we apply the calculation to the fact data, this is what we get:

+ 100 (Land)
+ 200 (MachineryAndEquipmentGross)
- -50 (AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment)

OR

+ 100 (Land)
+ 200 (MachineryAndEquipmentGross)
+ 50 (AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment) 

which equals 350.

250 is the correct value for the total line, as evidenced by the HTML document. We have incorrectly used a negative number for the fact because it originally seemed from the HTML that the value for depreciation was negative. What the HTML was really telling us was that the value is a positive liability being subtracted from the assets.

A human viewing the XBRL report right now would see the numbers and think it looks correct (the numbers on the sheet add up). A computer analyzing the report would have an incorrect value in its analysis - obviously not good.

How to  can fix this type of calculation problem:

  1. The underlying fact data needs to be corrected. In the example, change the negative 50 to a positive 50 by removing the parenthesis from around the number and pressing the Enter key to change the fact data. 
  2. After the fact data has been corrected, the report does not look correct. In the example, place the selector on the “Less: Accumulated depreciation” line item and go to the Element Properties dialog. Check the Negated option and press the OK button. You should see the parenthesis reappear around the number. The Negated property is used to display an element as the opposite of its normal balance type and  only applies to the element on the current presentation. The underlying fact data is correct, but it will display with the opposite sign on this presentation. To continue with the example, the  fact data is a positive 50. On the Plant, Property and Equipment presentation, it is now negated, so it will display as a negative 50.

To summarize, when working to resolve validation errors involving calculations and fact data:

Locate the offending fact value. A good place to start are the facts for any element(s) that have the opposite balance type of the total element. Verify that the raw fact values for those elements are correct (positive or negative). You can do this by using the Fact Properties, XBRL Fields Sheet or checking a proof of the presentation with the option to display raw fact data turned on. If  a fact value is  not correct, swap the sign of the value and use the Negated property on the row containing the fact on the presentation.

You should also verify that all of the facts involved in the calculation are correct to be certain that a typo or mistake hasn’t been made in the original document.