Taxonomies in XBRL

Taxonomies in xbrl

XBRL stands for eXtensible Business Reporting Language, and it's a standardized way of tagging financial data. Think of it like a universal language that computers can understand when it comes to financial reporting.

A taxonomy is a set of labels and definitions used to describe specific concepts. In the context of XBRL, a taxonomy defines the terms and concepts used in financial reporting, such as assets, liabilities, and revenue.

The purpose of XBRL Taxonomies is to standardize the way financial data is reported, making it easier for businesses and investors to compare and analyze financial information. This can lead to better decision-making and more transparency in the financial industry.

The Elements of an XBRL Taxonomy

When building an XBRL taxonomy, there are two important things to consider: 

  • XML Schemas 
  • Linkbases

XML Schemas follow a set of rules called the XML Schema specification, which is a standard created by W3. You can find the specification here:

Linkbases are groups of XLink objects that define different types of data within XBRL taxonomies. They follow the XML Linking Language specification, which you can access here:

An XBRL Linkbase consists 3 distinct types of objects


In XBRL taxonomy, resources store either simple descriptions or more complex details about reporting concepts. For instance, they might include easy-to-understand labels that describe the concept.


Locators in the XBRL taxonomy store website addresses that point to objects in remote locations, and those objects are part of external web resources.


Describe the relationships between different reporting concepts, like how they are related or calculated. Each arc has two important properties that help describe the relationship between the different reporting concepts. To be more precise, there are certain associations between the elements in the XBRL taxonomy. These associations are as follows:

  • The connection between a reporting concept and its label
  • The connection between a reporting concept and its reference
  • The connection between a reporting concept and another reporting concept.

Arcs in XBRL taxonomy have two extra features that provide information about the nature of the connections they represent:

  • The Role describes what kind of relationship it is.
  • The Arcrole indicates the type of relationship, like if it's for presentation or calculation.

These building blocks help create a standardized and structured way of organizing financial data in an XBRL taxonomy, which makes it easier for businesses and investors to compare and analyze financial information.



This is a diagram illustrating the components of taxonomies and example documents. 


Taxonomy Discovery

Taxonomy Discovery is the process of loading all the files that make up a taxonomy, which includes rules for organizing financial data in a structured way, before starting to process the actual financial data. This is important because taxonomies can have multiple files that need to be loaded and processed to correctly analyze the financial data.

To make these references work, there are specific elements that define how to reference each part of the taxonomy, like a schema or Linkbase. These elements are defined using specific codes that tell the XBRL Processor where to find the relevant files.

When an XBRL Processor reads an instance document, it needs to follow all of these references and load all of the relevant files into memory so that it can accurately process the financial data. This can be a recursive process because loading one file may require loading other files, which may require loading even more files.

These are various references available

 Reference from an instance document to a taxonomy schema is defined by a schemaRef element:

<link:schemaRef xlink:href="aapl-20210925.xsd" xlink:type="simple"/>

Reference from an instance document to a taxonomy Linkbase is defined by a linkbaseRef elements:

<link:linkbaseRef xlink:href="aapl-20210925_lab.xml" xlink:type="simple"/>

Reference from a taxonomy schema to another taxonomy schema is defined by a <xs:import> element.

<xs:import namespace="" schemaLocation=""/>

Reference from a taxonomy schema to a taxonomy Linkbase is defined by a linkbaseRef element:

<link:linkbaseRef xlink:arcrole="" xlink:href="aapl-20210925_lab.xml" xlink:role="" xlink:type="simple"/>

When working with financial data in XBRL format, an XBRL Processor needs to follow specific references to find all the necessary files, such as XML Schemas and Linkbases, and load them into memory so it can properly process the financial data. This can be a repeating process because loading one file may require loading even more files.

Overall, Taxonomy Discovery is an important part of processing financial data in XBRL format, and it ensures that all the necessary files are loaded and organized correctly so that the data can be accurately analyzed.

Entry Points

To properly discover all of the related files in a taxonomy, the process starts with a specific file, which is usually an XML Schema. This file is called the "Entry point" into the taxonomy. Since taxonomies are usually found on the internet, the entry point is an important piece of information that is provided by the owner of the taxonomy along with documentation about it. This information is the same for everyone who uses the taxonomy. For instance, the entry point for the US-GAAP taxonomy is


Hierarchies are ways of organizing information by showing how different pieces are related to one another. For example, a balance sheet can be organized using hierarchies to show how different accounts relate to each other. 

A balance sheet is a common example, and it may look like this:

Statement of Financial Position 

+--> Assets
+--+--> Assets, Current
+--+--+--> Cash and Cash Equivalents, at Carrying Value
+--+--+--> Marketable Securities, Current
+--+--> Assets, Noncurrent
+--+--+--> Marketable Securities, Noncurrent
+--+--+--> Property, Plant and Equipment, Net
+--> Liabilities and Equity
+--+--> Liabilities, Current
+--+--+--> Accounts Payable, Current
+--+--+--> Other Liabilities, Current
+--+--+--> Contract with Customer, Liability, Current
+--+--> Liabilities, Noncurrent
+--+--+--> Long-term Debt, Excluding Current Maturities
+--+--+--> Other Liabilities, Noncurrent

In XBRL, a "hierarchy" is when concepts are related to each other in a graph, using arcs that show the relationships between them. Sometimes these graphs can have loops or branches, but most of the time they represent a hierarchy with one main concept. Hierarchies have a "role" that describes their meaning and an "Arcrole" that defines the type of relationship between the concepts.

The three main Arcroles for hierarchies are Presentation, Calculation, and Definition. All the arcs that have the same role and Arcrole are grouped together in a "base set," which is like a sub-document inside the XBRL file.

Presentation Relationships

These relationships refer to connections between two concepts, where one concept is considered the "parent" and the other is the "child". They are established through a specific type of link known as the "parent-child Arcrole". These relationships play a crucial role in XBRL programs as they aid in the organization and presentation of data in a meaningful manner. 

Calculation Relationships

These relationships establish how data should be combined and can be used to check if data is correct. For instance, a basic combination rule from the hierarchy example is that Assets should be the sum of CurrentAssets and NonCurrentAssets. 

Taxonomy Extensions

To make XBRL more flexible, we use the concept of extensibility. This means we can create new reporting definitions on top of an existing taxonomy by making an extension taxonomy. To do this, we need to use the entry point schema of the base taxonomy as a reference in the extension taxonomy. This way, the extension taxonomy can import and build on the existing definitions in the base taxonomy.

<xs:import namespace="" schemaLocation=""/>

To comply with SEC/EDGAR reporting requirements, the reporting entity must create an extension taxonomy and publish it along with the XBRL instance document of the filing. 

Some of the most common extensions include:

  • Defining company-specific concepts
  • Hierarchies, 
  • Labels and References. 

These extensions are important when the base taxonomy does not have concepts that accurately represent the reporting entity's needs, or when the entity wants to include company-specific information in the filing. It is essential to follow these requirements for accurate and complete reporting.