XBRL (eXtensible Business Reporting Language) is a global standard for exchanging business information, particularly financial data. XBRL allows companies to report their financials in a standardized, machine-readable format, making it easier for regulators, investors, and other stakeholders to analyze and compare financial data. At the heart of XBRL reporting are XBRL instance documents, which contain the actual financial data reported by a company. This blog aims to provide a detailed understanding of XBRL instance documents, including the process of generating these documents, with examples to illustrate each step.
What is an XBRL Instance Document?
An XBRL instance document is an XML file that contains business and financial data. This document adheres to the XBRL standard and includes data that is structured in a way that can be easily read and processed by software applications. The instance document does not stand alone; it references taxonomies that define the meaning of the data elements contained within it.
Components of an XBRL Instance Document
- Contexts
Contexts in an XBRL instance document define the scope and applicability of the reported data. Each context specifies the entity to which the data pertains, the period covered by the data, and other identifying information necessary to understand the context of the facts reported.
Key Elements of Contexts
- Entity: The entity element identifies the reporting entity, such as a company. This includes an identifier and a scheme that specifies the identification system.
Example:
xml
<entity>
<identifier scheme=”http://www.sec.gov/CIK”>0001234567</identifier>
</entity>
- Period: The period element defines the time frame for which the data is reported. It can specify either an instant (a single point in time) or a duration (a start and end date) based on period type defined for the XBRL element.
Example:
xml
<period>
<startDate>2023-01-01</startDate>
<endDate>2023-12-31</endDate>
</period>
For an instant period:
xml
<period>
<instant>2023-12-31</instant>
</period>
- Scenario: An optional element used to provide additional details about the context, such as assumptions or hypothetical scenarios. This is less commonly used but can be important for complex reporting situations.
In this example, the context identifies the reporting entity using a CIK (Central Index Key) and specifies the reporting period as the entire year of 2023.
- Units
Units in XBRL specify the measurement units for the data. This ensures that numerical values are accurately interpreted by defining what those numbers represent, such as currency, shares, or other measures.
Key Elements of Units
- Unit ID: Each unit is given a unique identifier within the document.
- Measure: Specifies the actual unit of measure, often using standard codes such as ISO 4217 for currencies or custom definitions for other units.
Example Units
For currency in USD:
xml
<unit id=”U1″>
<measure>iso4217:USD</measure>
</unit>
For shares:
xml
<unit id=”U2″>
<measure>xbrli:shares</measure>
</unit>
In these examples, “U1” refers to U.S. dollars, and “U2” refers to shares, providing clear definitions for how numerical values should be interpreted.
- Facts
Facts are the actual data points being reported in an XBRL instance document. Each fact represents a piece of business information, such as revenue, net income, or the number of shares outstanding. Facts are associated with contexts and units to give them meaning and scope.
Key Elements of Facts
- Element Name: The name of the fact, typically defined by the taxonomy being used (e.g., US GAAP, IFRS).
- Context Reference: A reference to the context that defines the scope of the fact.
- Unit Reference: A reference to the unit that specifies the measurement unit of the fact.
- Value: The actual value of the fact.
- Decimals: Specifies the number of decimal places of precision or indicates the precision of the reported value.
- Footnotes
Footnotes in XBRL provide additional information or explanations related to the reported data. They are used to add context, clarify data points, or provide supplementary information that cannot be conveyed through the primary data alone.
Key Elements of Footnotes
- Footnote Link: A container for linking footnotes to facts.
- Locator (loc): Identifies the fact or facts to which the footnote applies.
- Footnote: The actual explanatory text or additional information.
Example Footnotes
xml
<footnoteLink>
<loc xlink:href=”#F1″ xlink:label=”F1″/>
<footnote xlink:label=”F1″ xlink:role=”http://www.xbrl.org/2003/role/footnote”>Revenue includes one-time gains from asset sales.</footnote>
</footnoteLink>
In this example, the footnote explains that the reported revenue includes one-time gains from asset sales, providing additional context that helps users better understand the data.
Generating XBRL Instance Documents: Process Overview
Creating an XBRL instance document is a multi-step process that requires careful planning, data preparation, and adherence to best practices.
- Understanding the Taxonomy: The taxonomy defines the elements that can be used in the XBRL instance document. It is essential to understand the relevant taxonomy for your reporting needs.
- Preparing the Data: Collect and organize the financial data that will be reported.
- Creating Contexts: Define the contexts for the data, such as the reporting period and the entity.
- Defining Units: Specify the measurement units for each data point.
- Populating Facts: Insert the actual financial data into the document.
- Adding Footnotes: Include any additional information or explanations as necessary.
- Validating the Document: Ensure that the instance document is correctly formatted and valid according to XBRL standards.
Step-by-Step Guide to Generating XBRL Instance Documents
Step 1: Understanding the Taxonomy
The first step in generating an XBRL instance document is to understand the taxonomy you will use. A taxonomy is a dictionary of financial concepts and the relationships between them. For example, the US GAAP Taxonomy is used by companies reporting under Generally Accepted Accounting Principles in the United States.
Step 2: Preparing the Data
Next, gather and organize the financial data you need to report. This data might include financial statements, notes, and disclosures. Ensure that the data is accurate and complete.
Step 3: Creating Contexts
Contexts in XBRL define the scope of the data. Each context specifies the entity (e.g., a company) and the reporting period. A context is created using the <context> element.
Step 4: Defining Units
Units specify the measurement units for the data. Common units include currency units (e.g., USD) and shares.
Step 5: Populating Facts
Facts are the actual data points reported in the XBRL instance document. Each fact is associated with a context and a unit.
Step 6: Adding Footnotes
Footnotes provide additional information or explanations related to the data. Footnotes are optional but can be useful for providing context or clarification.
Step 7: Validating the Document
The final step is to validate the XBRL instance document to ensure it adheres to the XBRL standard. Validation tools can check for errors in the document structure, data types, and conformance to the taxonomy.
Example Validation Check:
- Verify that all contexts are correctly defined and referenced.
- Ensure that units are defined and used correctly.
- Check that all facts are associated with a valid context and unit.
Example XBRL Instance Document
Here is a simplified example of a complete XBRL instance document:
xml
<?xml version=”1.0″ encoding=”UTF-8″?>
<xbrl xmlns=”http://www.xbrl.org/2003/instance”>
<schemaRef xlink:href=”http://www.xbrl.org/taxonomy/us-gaap/2023-01-31/us-gaap.xsd” xlink:type=”simple”/>
<context id=”C1″>
<entity>
<identifier scheme=”http://www.sec.gov/CIK”>0001234567</identifier>
</entity>
<period>
<startDate>2023-01-01</startDate>
<endDate>2023-12-31</endDate>
</period>
</context>
<unit id=”U1″>
<measure>iso4217:USD</measure>
</unit>
<unit id=”U2″>
<measure>xbrli:shares</measure>
</unit>
<us-gaap:Revenues contextRef=”C1″ unitRef=”U1″ decimals=”2″>1000000</us-gaap:Revenues>
<us-gaap:NetIncome contextRef=”C1″ unitRef=”U1″ decimals=”2″>200000</us-gaap:NetIncome>
<us-gaap:CommonSharesOutstanding contextRef=”C1″ unitRef=”U2″ decimals=”0″>5000000</us-gaap:CommonSharesOutstanding>
<footnoteLink>
<loc xlink:href=”#F1″ xlink:label=”F1″/>
<footnote xlink:label=”F1″ xlink:role=”http://www.xbrl.org/2003/role/footnote”>Revenue includes one-time gains from asset sales.</footnote>
</footnoteLink>
</xbrl>
Understanding and generating XBRL instance documents is a crucial skill for financial reporting professionals. By following the steps outlined in this guide, you can create accurate and compliant XBRL instance documents that meet regulatory requirements and facilitate better analysis and comparison of financial data. As the adoption of XBRL continues to grow globally, mastering these skills will become increasingly important for companies and financial professionals alike.
If you have any questions or need further assistance with XBRL instance documents, feel free to reach out or leave a comment below. Happy reporting!