<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.3">Jekyll</generator><link href="https://manusimidt.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://manusimidt.github.io/" rel="alternate" type="text/html" /><updated>2023-02-12T16:00:23+00:00</updated><id>https://manusimidt.github.io/feed.xml</id><title type="html">Manuel Schmidt</title><subtitle>Hey, i am Manuel. I am interested in data science and machine learning. </subtitle><entry><title type="html">What is XBRL?</title><link href="https://manusimidt.github.io/2021-07/xbrl-explained" rel="alternate" type="text/html" title="What is XBRL?" /><published>2021-07-01T05:48:17+00:00</published><updated>2021-07-01T05:48:17+00:00</updated><id>https://manusimidt.github.io/2021-07/xbrl-explained</id><content type="html" xml:base="https://manusimidt.github.io/2021-07/xbrl-explained">&lt;blockquote&gt;
  &lt;p&gt;Lately I get a lot of feedback and requests regarding my open-source library &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;py-xbrl&lt;/code&gt;, which makes me very happy. But since I unfortunately can’t answer every request and many questions focus on the XBRL standard, I want to give a short technical overview of the XBRL standard with this blog post.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;1-introduction&quot;&gt;1 Introduction&lt;/h2&gt;
&lt;p&gt;XBRL (e&lt;strong&gt;X&lt;/strong&gt;tensible &lt;strong&gt;B&lt;/strong&gt;usiness &lt;strong&gt;R&lt;/strong&gt;eporting &lt;strong&gt;L&lt;/strong&gt;anguage) is a established XML-based specification used for the &lt;strong&gt;transmission of financial data between two parties&lt;/strong&gt;. Transferring financial data between two different parties seems trivial at first glance. However, the huge number of different companies from different industries with different internal accounting systems makes the creation of a common interface a challenge. This is where XBRL comes into play. XBRL allows a wide variety of financial information to be compiled and transmitted.&lt;/p&gt;

&lt;p&gt;A very common use case is the transmission of quarterly reports and annual reports to authorities. For example, every U.S. company (over a certain size) must file quarterly reports (10-Q) and annual reports (10-K) with the SEC using XBRL. These submissions are publicly accessible through &lt;a href=&quot;https://www.sec.gov/edgar/searchedgar/companysearch.html&quot;&gt;SEC EDGAR&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;2-the-taxonomy&quot;&gt;2 The Taxonomy&lt;/h2&gt;
&lt;p&gt;Since there is a large number of financial information with different accounting systems (us-gaap, ifrs…), a common language framework must be established prior to the data transfer. In the XBRL context, this common language framework is called a &lt;strong&gt;Taxonomy&lt;/strong&gt;. The taxonomy defines a list of &lt;strong&gt;concepts&lt;/strong&gt; that can then be used in the instance document to tag certain numbers and ensures the integrity and syntactic correctness of the data.&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;It has proven useful to create a separate taxonomy for each accounting system - e.g. IFRS, German GAAP (HGB), US GAAP.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;21-the-taxonomy-schema&quot;&gt;2.1 The Taxonomy Schema&lt;/h3&gt;
&lt;p&gt;The taxonomy schema is the heart of the taxonomy and defines the concepts of the taxonomy. The concepts will later be used by the creator of a financial report to tag certain numbers.&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;An example: The US-GAAP taxonomy defines the concept “Cash and Cash Equivalents”. Every company that creates a financial report based on us-gaap can use this concept (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;us-gaap:CashAndCashEquivalents&lt;/code&gt;) and associate it with a number in their financial report.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;22-taxonomy-linkbases&quot;&gt;2.2 Taxonomy Linkbases&lt;/h3&gt;
&lt;p&gt;Linkbases are individual XML files that bring structure to concepts and link them to additional information. This information can be, for example, user-friendly labels or references to authoritative literature. The linkbases are imported in the taxonomy schema. 
Linkbases can be divided into two main groups: &lt;strong&gt;Relation Linkbases&lt;/strong&gt; and &lt;strong&gt;Reference Linkbases&lt;/strong&gt;. Relation Linkbases create hierarchical relationships between multiple concepts. The interpretation of these hierarchical relationships is defined by the type of linkbase. Reference linkbases, on the other hand, add resources to concepts.&lt;/p&gt;

&lt;h4 id=&quot;221-relation-linkbases&quot;&gt;2.2.1 Relation Linkbases&lt;/h4&gt;
&lt;p&gt;With the help of relation linkbases, it is possible to represent hierarchical structures between the concepts of the taxonomy. These hierarchical structures are created using &lt;a href=&quot;/2021-05/what-is-xlink&quot;&gt;XLink&lt;/a&gt; and extended links. The locators here reference the concepts of the taxonomy, which are declared in the taxonomy schema. These locators are then linked via arcs. So, in XLink jargon, this is &lt;strong&gt;linking two remote resources&lt;/strong&gt;, where the remote resources are concepts of the taxonomy. In the image below, a locator pointing to the concept “Assets” is linked via two arcs to the hierarchically underlying concepts “Current Assets” and “Non-Current Assets”.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/2021-07-01_relation_linkbase.png&quot; alt=&quot;Structure of a relation linkbase&quot; title=&quot;Structure of a relation linkbase&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The hierarchies created in the linkbase have different meanings depending on the type of the linkbase.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Calculation Linkbase:&lt;/strong&gt; The Calculation Linkbase defines simple arithmetic relationships between individual concepts. If the above example were a calculation linkbase, it would define the following equation: &lt;em&gt;us-gaap_Assets = us-gaap_AssetsCurrent + us-gaap_AssetsNonCurrent&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Presentation Linkbase:&lt;/strong&gt; The presentation linkbase describes the order in which the concepts of the taxonomy should be arranged. The above example would subordinate the &lt;em&gt;us-gaap_AssetsCurrent&lt;/em&gt; and &lt;em&gt;us-gaap_AssetsNonCurrent&lt;/em&gt; concepts to the &lt;em&gt;us-gaap_Assets&lt;/em&gt; concept.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Definition Linkbase:&lt;/strong&gt; The definition linkbase allows to create various other logical connections between concepts. For example, a link with the arcrole “essence-alias” can be used to emphasize that two concepts cover the same or very similar subject matter.&lt;/p&gt;

&lt;h4 id=&quot;222-reference-linkbases&quot;&gt;2.2.2 Reference Linkbases&lt;/h4&gt;
&lt;p&gt;In contrast to relation linkbases, which create connections between different concepts, resource linkbases connect concepts with related resources. These resources can be, for example, different types of labels for the concepts. So, in XLink jargon, here a &lt;strong&gt;remote element is linked to several local elements&lt;/strong&gt; via arcs. The figure below shows a possible structure of a label linkbase. Here, the concept “Assets” is linked to the labels “Assets” and “Total Assets”. Depending on the use of the concept in the financial report, one of the two labels can be selected later.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/img/2021-07-01_reference_linkbase.png&quot; alt=&quot;Structure of a reference linkbase&quot; title=&quot;Structure of a reference linkbase&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Label Linkbase:&lt;/strong&gt; The Label Linkbase links concepts with one or more reader-friendly labels. It is also possible to link labels in different languages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reference Linkbase:&lt;/strong&gt; The reference linkbase can be used to create links between concepts and documents outside of XBRL/XML. Most often, these external documents are laws or policies that govern the calculation, disclosure, or presentation of these concepts.&lt;/p&gt;

&lt;h2 id=&quot;3-instance-documents&quot;&gt;3 Instance Documents&lt;/h2&gt;
&lt;p&gt;The taxonomies discussed previously create the basic structure of reporting in XBRL and usually relate the concepts using regulatory guidelines or link them to other resources such as labels. The Instance Document builds on top of it and uses the concepts created in the taxonomy to tag the numbers to be reported, giving them meaning and structure. Thus, the &lt;strong&gt;instance document&lt;/strong&gt; embodies the actual business report, for example, the annual financial statement.&lt;/p&gt;

&lt;p&gt;There are two different types of instance documents: the classic XBRL instance document (XML) and the iXBRL instance document (HTML). Both types are based on the same elements but are written in different file types.&lt;/p&gt;

&lt;h3 id=&quot;31-important-elements&quot;&gt;3.1 Important Elements&lt;/h3&gt;
&lt;p&gt;The core elements of every Instance document are the &lt;strong&gt;Facts&lt;/strong&gt;. A fact is a number (&lt;em&gt;150000&lt;/em&gt;) combined with a context (&lt;em&gt;from Jan-Dec 2020 for company xyz&lt;/em&gt;), a &lt;strong&gt;Unit&lt;/strong&gt; (&lt;em&gt;USD&lt;/em&gt;) and tagged with a &lt;strong&gt;Concept&lt;/strong&gt; from the taxonomy (&lt;em&gt;us-gaap_Revenue&lt;/em&gt;). The &lt;strong&gt;Context&lt;/strong&gt; defines the time frame and the company to which the fact belongs.&lt;/p&gt;

&lt;p&gt;To be able to tag Facts in an XBRL Instance Document, each Instance Document must reference at least one Taxonomy. After referencing a taxonomy, any concepts defined in the taxonomy can be used to tag the facts in the instance document.&lt;/p&gt;

&lt;h3 id=&quot;32-inline-vs-default-instance-documents&quot;&gt;3.2 inline vs default Instance Documents&lt;/h3&gt;
&lt;p&gt;The issue with classic XBRL instance documents is that the filer has to provide two seperate reports. One that is human readable and the XBRL Instance Document (which is basically an XML file). This leads to additional work and can lead to inconsistencies between the two files. A &lt;strong&gt;inline XBRL (iXBRL) Instance Document&lt;/strong&gt; makes it possible to make XBRL taggings directly in an HTML file. Compared to XML files, HTML files have the decisive advantage that they can be read by an end user directly in the browser. Thus, the filer only has to create one document.&lt;/p&gt;

&lt;h2 id=&quot;4-putting-it-all-together&quot;&gt;4 Putting it all together&lt;/h2&gt;
&lt;p&gt;The following figure shows all elements of an XBRL submission discussed before and their interrelationships.
&lt;img src=&quot;/assets/img/2021-07-01_full_xbrl_structure.png&quot; alt=&quot;Structure of a XBRL Submission&quot; title=&quot;Structure of a XBRL Submission&quot; /&gt;&lt;/p&gt;</content><author><name></name></author><category term="xbrl" /><category term="xbrl" /><summary type="html">Lately I get a lot of feedback and requests regarding my open-source library py-xbrl, which makes me very happy. But since I unfortunately can’t answer every request and many questions focus on the XBRL standard, I want to give a short technical overview of the XBRL standard with this blog post.</summary></entry><entry><title type="html">What is XLink?</title><link href="https://manusimidt.github.io/2021-05/what-is-xlink" rel="alternate" type="text/html" title="What is XLink?" /><published>2021-05-25T21:40:32+00:00</published><updated>2021-05-25T21:40:32+00:00</updated><id>https://manusimidt.github.io/2021-05/what-is-xlink</id><content type="html" xml:base="https://manusimidt.github.io/2021-05/what-is-xlink">&lt;blockquote&gt;
  &lt;p&gt;This blog post mainly discusses extended links, as they are an important concept for XBRL linkbases.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Widely used for linking resources on the web is the “href” attribute. It provides a simple unidirectional link to another resource and is used, for example, in the anchor tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;a&amp;gt;&lt;/code&gt; in HTML to create a link to another web address. However, the “href” attribute quickly reaches its limits for more complex problems, which is why the World Wide Web Consortium (W3C) has developed an additional specification, the &lt;strong&gt;XML Linking Language (XLink)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;With XLink the linking of several elements within as well as between XML documents is possible. Logical relationships between two or more XML elements can be modeled. Thus, in addition to the already known unidirectional links, more complex link structures can also be created. Unidirectional links between two resources are called &lt;strong&gt;simple links&lt;/strong&gt; (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;xlink:type=&quot;simple&quot;&lt;/code&gt;), links to any number of resources are called &lt;strong&gt;extended links&lt;/strong&gt; (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;xlink:type=&quot;extended&quot;&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;The XBRL standard mainly uses extended links, which is why we will focus on them in the following.&lt;/p&gt;

&lt;p&gt;When you create an extended link, you can freely choose the name for your link element. In code example below it got the name &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;studentLink&amp;gt;&lt;/code&gt;. The only important thing here is the attribute &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;xlink:type&lt;/code&gt;, which specifies the type of link.&lt;/p&gt;

&lt;p&gt;After creating the link element, all external elements that are to be linked to the link element must first be referenced. This is done with the so-called &lt;strong&gt;locator&lt;/strong&gt;. In code example below, the external resource named “student123”, which is defined in the schema file “students.xsd”, is referenced in this way.
Next, the element to be associated with the first element must be defined. It can either be created locally (in the same file) or referenced remotely (in another file). The first code example defines the firstname and lastname as seperate local resources. The value “resource” of the attribute &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;xlink:type&lt;/code&gt; indicates that this is a locally defined resource.&lt;/p&gt;

&lt;p&gt;Now that it is clear which elements and information play a role in the link, it must be defined how these are to be linked.
For this the so-called &lt;strong&gt;Arcs&lt;/strong&gt; are used. In the code example, this would be the element &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;go&amp;gt;&lt;/code&gt;. It connects XLink elements with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;from&lt;/code&gt; and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;to&lt;/code&gt; attributes. The elements are identified by the “xlink:label” attribute. It is possible that an Arc element links several elements via the label, as is the case with the two resources in the example below, which both have the label “local”.&lt;/p&gt;

&lt;div class=&quot;language-xml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;studentLink&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xlink:type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;extended&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;

  &lt;span class=&quot;c&quot;&gt;&amp;lt;!-- This locator references a XML element in another document --&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;locator&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xlink:type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;locator&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xlink:label=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;remote1&quot;&lt;/span&gt;
           &lt;span class=&quot;na&quot;&gt;xlink:href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;/students.xsd#student123&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt; 
  
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;resource&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xlink:type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;resource&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xlink:label=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;local&quot;&lt;/span&gt; 
            &lt;span class=&quot;na&quot;&gt;xlink:role=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;first-name&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Peter&lt;span class=&quot;nt&quot;&gt;&amp;lt;/resource&amp;gt;&lt;/span&gt;
  
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;resource&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xlink:type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;resource&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xlink:label=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;local&quot;&lt;/span&gt; 
            &lt;span class=&quot;na&quot;&gt;xlink:role=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;last-name&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Smith&lt;span class=&quot;nt&quot;&gt;&amp;lt;/resource&amp;gt;&lt;/span&gt;
  
  &lt;span class=&quot;c&quot;&gt;&amp;lt;!-- This arc connects the locator with the locally defined resources --&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;go&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xlink:type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;arc&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xlink:from=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;local&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xlink:to=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;remote1&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt; 
  
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/studentLink&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The second code example shows a link between two remotely stored elements. But the basic structure is the same, we now have only two locators instead of one locator and multiple resources.&lt;/p&gt;

&lt;div class=&quot;language-xml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;studentLink&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xlink:type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;extended&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;&amp;lt;!-- Both locators reference an XML element in another document --&amp;gt;&lt;/span&gt;

  &lt;span class=&quot;nt&quot;&gt;&amp;lt;locator&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xlink:type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;locator&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xlink:label=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;remote1&quot;&lt;/span&gt;
           &lt;span class=&quot;na&quot;&gt;xlink:href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;/students.xsd#student123&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt; 
  
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;locator&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xlink:type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;locator&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xlink:label=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;remote2&quot;&lt;/span&gt; 
           &lt;span class=&quot;na&quot;&gt;xlink:href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;/grades-123.xsd&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;

  &lt;span class=&quot;c&quot;&gt;&amp;lt;!-- This arc connects the two remotly defined XML elements --&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;go&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xlink:type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;arc&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xlink:from=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;remote2&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xlink:to=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;remote1&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
  
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/studentLink&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;summary&quot;&gt;Summary&lt;/h3&gt;
&lt;p&gt;XLink is a Specification that allows for defining linkings between two XML-elements. These elements can either be &lt;strong&gt;locators&lt;/strong&gt; that reference an element in another document, or &lt;strong&gt;resources&lt;/strong&gt; that are defined locally. The linking of two or more elements is done with so-called &lt;strong&gt;arcs&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This blog post focuses mainly on extended links, as they are very important in XBRL linkbases. However, the XML Linking Language contains way more concepts. You can find the original specification &lt;a href=&quot;https://www.w3.org/TR/xlink11/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</content><author><name></name></author><category term="xbrl," /><category term="xml" /><category term="xbrl," /><category term="xml" /><summary type="html">This blog post mainly discusses extended links, as they are an important concept for XBRL linkbases.</summary></entry><entry><title type="html">XBRL from the bottom up</title><link href="https://manusimidt.github.io/2021-05/xbrl-from-the-bottom-up" rel="alternate" type="text/html" title="XBRL from the bottom up" /><published>2021-05-08T14:58:15+00:00</published><updated>2021-05-08T14:58:15+00:00</updated><id>https://manusimidt.github.io/2021-05/xbrl-from-the-bottom-up</id><content type="html" xml:base="https://manusimidt.github.io/2021-05/xbrl-from-the-bottom-up">&lt;blockquote&gt;
  &lt;p&gt;With this blog post I will try to explain XBRL as simple as possible using a problem-solving oriented approach. I will show the challenges in transferring financial data and explain how XBRL solves them. &lt;strong&gt;For a more detailed and traditional explanation, please check out this blog post: &lt;a href=&quot;/2021-07/xbrl-explained&quot;&gt;What is XBRL?&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div style=&quot;text-align:center; margin: 10px&quot;&gt;&lt;img src=&quot;/assets/img/2021-07-01/l1.png&quot; /&gt;&lt;/div&gt;

&lt;p&gt;Ok, so our goal is to transfer some financial data. Let’s say we want to tell the world that we generated 15.7 million USD in Revenue in 2020. We also want our revenue report to be machine readable, no old-school pdf’s! How can we encode and transfer our financial data?&lt;/p&gt;

&lt;p&gt;The common approach would be to create another markup language, perhaps YAML 2.0 😉. On the other hand, it might also be smart to simply use an already existing and established standard. How about the most famous markup language in the world - &lt;strong&gt;XML&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;In XML, we could encode our data as follows:&lt;/p&gt;
&lt;div class=&quot;language-xml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;report&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;revenue&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;unit=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;usd&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;from=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;01.01.2020&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;to=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;31.12.2020&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;15700000&lt;span class=&quot;nt&quot;&gt;&amp;lt;/revenue&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/report&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div style=&quot;text-align:center; margin: 10px&quot;&gt;&lt;img src=&quot;/assets/img/2021-07-01/l2.png&quot; /&gt;&lt;/div&gt;

&lt;p&gt;Great, our data point ($15.7M Revenue in 2020) is now machine-readable and encoded in a widely established standard. Now we can send out our report and tell the world how much profit we made, right?&lt;/p&gt;

&lt;p&gt;Not so fast. There are a couple of issues with our report:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;The recipient of the xml file does not know &lt;strong&gt;which company&lt;/strong&gt; to congratulate for the $15.7M in revenues.&lt;/li&gt;
  &lt;li&gt;In an annual report, we will have hundreds of financial data points from the same period. We would have to &lt;strong&gt;redefine the period and the company&lt;/strong&gt; (to which the number belongs) for every data point.&lt;/li&gt;
  &lt;li&gt;The unit of this example is quite simple. But how do we deal with financial data like “earnings per share” which would have the &lt;strong&gt;unit “USD per share”&lt;/strong&gt;?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ok, let’s make some improvements to our xml report:&lt;/p&gt;
&lt;div class=&quot;language-xml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;report&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;unit&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;id=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;usd&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;measure&amp;gt;&lt;/span&gt;USD&lt;span class=&quot;nt&quot;&gt;&amp;lt;/measure&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/unit&amp;gt;&lt;/span&gt;

  &lt;span class=&quot;nt&quot;&gt;&amp;lt;context&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;id=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;2020FY&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;startDate&amp;gt;&lt;/span&gt;01.01.2020&lt;span class=&quot;nt&quot;&gt;&amp;lt;/startDate&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;endDate&amp;gt;&lt;/span&gt;31.12.2020&lt;span class=&quot;nt&quot;&gt;&amp;lt;/endDate&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;entity&amp;gt;&lt;/span&gt;865985&lt;span class=&quot;nt&quot;&gt;&amp;lt;/entity&amp;gt;&lt;/span&gt; &lt;span class=&quot;c&quot;&gt;&amp;lt;!-- This is our company identifier that the auditors gave us--&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/context&amp;gt;&lt;/span&gt;

  &lt;span class=&quot;nt&quot;&gt;&amp;lt;revenue&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;unit=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;usd&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;context=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;2020FY&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;16000000&lt;span class=&quot;nt&quot;&gt;&amp;lt;/revenue&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/report&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;We have now solved the problems from above relatively well, can we send the report now? Unfortunately not quite…&lt;/p&gt;

&lt;p&gt;We are obviously not the only company in the world. If everyone did what we do, the persons receiving the reports would have a really bad time processing &lt;strong&gt;hundreds of slightly different reports&lt;/strong&gt;. We need a way to define the general structure of the report so that all financial reports have the same structure.
Fortunately, XML provides an excellent way to specify the structure of an XML file with XML schemas.&lt;/p&gt;

&lt;p&gt;This is where the &lt;strong&gt;XML Specification&lt;/strong&gt; comes into play. Fortunately, some clever minds have already created it, so we will just use it here for now and not go into the schema file itself.&lt;/p&gt;

&lt;div class=&quot;language-xml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;xbrli:xbrl&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;xmlns:xbrli=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;http://www.xbrl.org/2003/instance&quot;&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;xmlns:iso4217=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;http://www.xbrl.org/2003/iso4217&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;

  &lt;span class=&quot;nt&quot;&gt;&amp;lt;xbrli:unit&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;id=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;usd&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;xbrli:measure&amp;gt;&lt;/span&gt;iso4217:USD&lt;span class=&quot;nt&quot;&gt;&amp;lt;/xbrli:measure&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/xbrli:unit&amp;gt;&lt;/span&gt;

  &lt;span class=&quot;nt&quot;&gt;&amp;lt;xbrli:context&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;id=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;2020FY&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;xbrli:entity&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;xbrli:identifier&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;scheme=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;http://www.sec.gov/CIK&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;0000320193&lt;span class=&quot;nt&quot;&gt;&amp;lt;/xbrli:identifier&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/xbrli:entity&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;xbrli:period&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;xbrli:startDate&amp;gt;&lt;/span&gt;2016-09-25&lt;span class=&quot;nt&quot;&gt;&amp;lt;/xbrli:startDate&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;xbrli:endDate&amp;gt;&lt;/span&gt;2017-09-30&lt;span class=&quot;nt&quot;&gt;&amp;lt;/xbrli:endDate&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/xbrli:period&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/xbrli:context&amp;gt;&lt;/span&gt;  

  &lt;span class=&quot;nt&quot;&gt;&amp;lt;revenue&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;unitRef=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;usd&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;contextRef=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;2020FY&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;16000000&lt;span class=&quot;nt&quot;&gt;&amp;lt;/revenue&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/xbrli:xbrl&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;By using the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;xbrli&lt;/code&gt; namespace we show that we are using the XML elements (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;unit&amp;gt;&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;context&amp;gt;&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;period&amp;gt;&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;identifier&amp;gt;&lt;/code&gt; etc.) of the XBRL specification. An XML validator could now check for each element whether it has the correct children and all necessary attributes. For example, for the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;identifier&amp;gt;&lt;/code&gt; element, the XBRL specification requires that it has an attribute &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;scheme&lt;/code&gt; that indicates which type of company identification number the element contains.&lt;/p&gt;

&lt;div style=&quot;text-align:center; margin: 10px&quot;&gt;&lt;img src=&quot;/assets/img/2021-07-01/l3.png&quot; /&gt;&lt;/div&gt;

&lt;p&gt;By the way, the XML file we are creating is called &lt;strong&gt;Instance Document&lt;/strong&gt; in the XBRL jargon. It holds all our financials that we want to publish. - So, we can check another box 🥳.&lt;/p&gt;

&lt;div style=&quot;text-align:center; margin: 10px&quot;&gt;&lt;img src=&quot;/assets/img/2021-07-01/l4.png&quot; /&gt;&lt;/div&gt;

&lt;p&gt;To summarize; the basic structure of our Instance Document (our XML report) is now defined by the XBRL Specification. We have introduced contexts that contain information about the timeframe and company a number is related to. We have also introduced unit-elements that define the unit that belongs to our number. Both units and contexts can be referenced many times in our Instance Document.&lt;/p&gt;

&lt;p&gt;But one thing is missing. Currently no one tells us which financial information we can encode in our document. Currently we only have one &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;revenue&amp;gt;&lt;/code&gt; element. Can we add another called &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;cash&amp;gt;&lt;/code&gt;? This is regulated by a so-called &lt;strong&gt;Taxonomy&lt;/strong&gt;. The taxonomy defines the different (accounting) &lt;strong&gt;concepts&lt;/strong&gt; that can be used in the Instance Document. It also contains additional information about the relationships between multiple concepts and additional resources for concepts (e.g. labels), but I won’t go into that in this blog post.&lt;/p&gt;

&lt;h4 id=&quot;our-instance-document&quot;&gt;Our Instance Document:&lt;/h4&gt;
&lt;div class=&quot;language-xml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;cp&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;xbrli:xbrl&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;xmlns:xbrli=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;http://www.xbrl.org/2003/instance&quot;&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;xmlns:iso4217=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;http://www.xbrl.org/2003/iso4217&quot;&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;xmlns:us-gaap=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;http://fasb.org/us-gaap/2020-01-31&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;

  &lt;span class=&quot;nt&quot;&gt;&amp;lt;xbrli:unit&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;id=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;usd&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;xbrli:measure&amp;gt;&lt;/span&gt;iso4217:USD&lt;span class=&quot;nt&quot;&gt;&amp;lt;/xbrli:measure&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/xbrli:unit&amp;gt;&lt;/span&gt;

  &lt;span class=&quot;nt&quot;&gt;&amp;lt;xbrli:context&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;id=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;2020FY&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;xbrli:entity&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;xbrli:identifier&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;scheme=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;http://www.sec.gov/CIK&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;0000320193&lt;span class=&quot;nt&quot;&gt;&amp;lt;/xbrli:identifier&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/xbrli:entity&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;xbrli:period&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;xbrli:startDate&amp;gt;&lt;/span&gt;2016-09-25&lt;span class=&quot;nt&quot;&gt;&amp;lt;/xbrli:startDate&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;xbrli:endDate&amp;gt;&lt;/span&gt;2017-09-30&lt;span class=&quot;nt&quot;&gt;&amp;lt;/xbrli:endDate&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/xbrli:period&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/xbrli:context&amp;gt;&lt;/span&gt;  

  &lt;span class=&quot;c&quot;&gt;&amp;lt;!-- This is new, we are now using the us-gaap prefix --&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;us-gaap:Revenue&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;unitRef=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;usd&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;contextRef=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;2020FY&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;16000000&lt;span class=&quot;nt&quot;&gt;&amp;lt;/us-gaap:Revenue&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/xbrli:xbrl&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h4 id=&quot;the-taxonomy&quot;&gt;The Taxonomy:&lt;/h4&gt;
&lt;div class=&quot;language-xml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;xsd:schema&lt;/span&gt; 
  &lt;span class=&quot;na&quot;&gt;xmlns:xsd=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;http://www.w3.org/2001/XMLSchema&quot;&lt;/span&gt;
  &lt;span class=&quot;na&quot;&gt;xmlns:xbrli=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;http://www.xbrl.org/2003/instance&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;

  &lt;span class=&quot;nt&quot;&gt;&amp;lt;xsd:element&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;id=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;us-gaap-Revenue&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;name=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Revenue&quot;&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;nillable=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;true&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;substitutionGroup=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;xbrli:item&quot;&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;type=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;xbrli:monetaryItemType&quot;&lt;/span&gt;
    &lt;span class=&quot;na&quot;&gt;xbrli:balance=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;credit&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xbrli:periodType=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;duration&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;c&quot;&gt;&amp;lt;!-- Many more xml elements (Concepts)... --&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/xsd:schema&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;blockquote&gt;
  &lt;p&gt;Actually, this is just the Taxonomy schema. In the real world, a taxonomy would be much more complex!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Our Instance Document now uses the tag &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;us-gaap:Revenue&amp;gt;&lt;/code&gt; for the fact. The namespace &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;http://fasb.org/us-gaap/2020-01-31&lt;/code&gt; shows us that we are referring to the concept &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Revenue&lt;/code&gt; from the us-gaap taxonomy of 2020. The Taxonomy also stores additional information about the concept &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Revenue&lt;/code&gt;. This information also allows the receiver of our report to validate it.&lt;/p&gt;

&lt;div style=&quot;text-align:center; margin: 10px&quot;&gt;&lt;img src=&quot;/assets/img/2021-07-01/l5.png&quot; /&gt;&lt;/div&gt;

&lt;h2 id=&quot;summary&quot;&gt;Summary&lt;/h2&gt;
&lt;p&gt;To summarize: Our goal is to transfer financial data. Each financial data point is called a &lt;strong&gt;Fact&lt;/strong&gt;. To each fact belongs a &lt;strong&gt;Context&lt;/strong&gt; that stores information about the date or timeframe as well as the company the fact belongs to. Most facts also have a &lt;strong&gt;Unit&lt;/strong&gt; attached to them. To transfer our facts, we start by creating an XML document. This XML document is called &lt;strong&gt;Instance Document&lt;/strong&gt;. The structure of our Instance Document is defined by the &lt;strong&gt;XBRL Specification&lt;/strong&gt;. The different concepts we can use for tagging our facts i.e.: (Assets, Liabilities, CashAndCashEquivalentsAtCarryingValue) are defined in the &lt;strong&gt;Taxonomy&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This blog post is written with the goal of providing the most easily digestible technical introduction to XBRL. However, it is therefore somewhat imprecise in some places and/or omits important elements. A more detailed description can be found in my Blog Post &lt;a href=&quot;/2021-07/xbrl-explained&quot;&gt;What is XBRL?&lt;/a&gt;.&lt;/p&gt;</content><author><name></name></author><category term="xbrl" /><category term="xbrl" /><summary type="html">With this blog post I will try to explain XBRL as simple as possible using a problem-solving oriented approach. I will show the challenges in transferring financial data and explain how XBRL solves them. For a more detailed and traditional explanation, please check out this blog post: What is XBRL?.</summary></entry><entry><title type="html">Explaining what learned models predict</title><link href="https://manusimidt.github.io/2021-04/explaining-what-learned-models-predict" rel="alternate" type="text/html" title="Explaining what learned models predict" /><published>2021-04-05T14:04:26+00:00</published><updated>2021-04-05T14:04:26+00:00</updated><id>https://manusimidt.github.io/2021-04/explaining-what-learned-models-predict</id><content type="html" xml:base="https://manusimidt.github.io/2021-04/explaining-what-learned-models-predict">&lt;h2 id=&quot;explained-what-learned-models-predict&quot;&gt;Explained what learned models predict&lt;/h2&gt;

&lt;p&gt;This essay was originally created for a university application. 
But before the essay gathers dust on my hard drive, I’d rather share it here 😄.&lt;/p&gt;

&lt;h3 id=&quot;abstract&quot;&gt;Abstract&lt;/h3&gt;
&lt;p&gt;There are many problems in computer science that cannot or can only be solved with extreme difficulty
using pre-programmed rules. An example here would be the recognition and classification of images. Here,
machine learning (ML) algorithms offer a good solution approach by recognizing regularities from previous
examples, storing them, and applying them to the new images.
However, the safety and reliability of machine-learning systems cannot be readily assessed because the
individual steps in the learning process of an ML system are not easily comprehensible to a human, making
the decision path very opaque.
Given the ever-increasing impact of ML systems in our lives, it is very important that these systems are
reliable since wrong or unintended results could have extreme consequences.&lt;/p&gt;

&lt;p&gt;This paper will discuss a small sample of possible causes of reliability problems and present some solutions.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/assets/documents/Explaining_what_learned_models_predict.pdf&quot;&gt;Link to the document&lt;/a&gt;&lt;/p&gt;</content><author><name></name></author><category term="machine-learning" /><category term="machine-learning" /><summary type="html">Explained what learned models predict</summary></entry><entry><title type="html">Financial reporting in the digital age</title><link href="https://manusimidt.github.io/2021-01/financial-reporting-in-the-digital-age" rel="alternate" type="text/html" title="Financial reporting in the digital age" /><published>2021-01-17T06:53:36+00:00</published><updated>2021-01-17T06:53:36+00:00</updated><id>https://manusimidt.github.io/2021-01/financial-reporting-in-the-digital-age</id><content type="html" xml:base="https://manusimidt.github.io/2021-01/financial-reporting-in-the-digital-age">&lt;h2 id=&quot;my-bachelor-thesis&quot;&gt;My Bachelor Thesis&lt;/h2&gt;
&lt;p&gt;At the end of my bachelor degree in business informatics at OTH Regensburg I wrote my bachelor thesis about “Financial reporting in the digital age”.
In my thesis I discuss the XBRL standard and its technical structure. I also developed the &lt;a href=&quot;https://pypi.org/project/py-xbrl/&quot;&gt;Python XBRL parser “py-xbrl”&lt;/a&gt; while writing my thesis.
To demonstrate the capabilities of the XBRL standard, I processed and analyzed tens of thousands annual and quarterly reports (10-K and 10-Q) using “py-xbrl”.&lt;/p&gt;

&lt;p&gt;Unfortunately, my entire thesis is only available in German.
&lt;a href=&quot;/assets/documents/Bachelorarbeit_Finanzberichterstattung_im_digitalen_Zeitalter.pdf&quot;&gt;Full Thesis (German)&lt;/a&gt;&lt;/p&gt;</content><author><name></name></author><category term="xbrl" /><category term="xbrl" /><summary type="html">My Bachelor Thesis At the end of my bachelor degree in business informatics at OTH Regensburg I wrote my bachelor thesis about “Financial reporting in the digital age”. In my thesis I discuss the XBRL standard and its technical structure. I also developed the Python XBRL parser “py-xbrl” while writing my thesis. To demonstrate the capabilities of the XBRL standard, I processed and analyzed tens of thousands annual and quarterly reports (10-K and 10-Q) using “py-xbrl”.</summary></entry></feed>