CA Kamal Garg
XBRL – a language for electronic communication:
XBRL is a language for the electronic communication of business and financial data which is revolutionising business reporting around the world. It provides major benefits in the preparation, analysis and communication of business information. It offers cost savings, greater efficiency and improved accuracy and reliability to all those involved in supplying or using financial data. It is an open standard, free of licence fees, being developed by a non-profit making international consortium. Other pages on this web site provide detailed information on XBRL, its technical features and its business opportunities.
XBRL does not cause a change in accounting standards: XBRL is simply a language for transmitting information. It must accurately reflect data reported under different standards – it does not change them.
Potential uses of XBRL: XBRL can be applied to a very wide range of business and financial data. Among other things, it can handle:
- Company internal and external financial reporting.
- Business reporting to all types of regulators, including tax and financial authorities, central banks and governments.
- Filing of loan reports and applications; credit risk assessments.
- Exchange of information between government departments or between other institutions, such as central banks.
- Authoritative accounting literature – providing a standard way of describing accounting documents provided by authoritative bodies.
A wide range of other financial and statistical data which needs to be stored, exchanged and analysed. All types of organisations can use XBRL to save costs and improve efficiency in handling business and financial information. Because XBRL is extensible and flexible, it can be adapted to a wide variety of different requirements. All participants in the financial information supply chain can benefit, whether they are preparers, transmitters or users of business data.
How do companies create statements in XBRL: XBRL-aware accounting software products are becoming available which will support the export of data in XBRL form. These tools allow users to map charts of accounts and other structures to XBRL tags. Statements can be mapped into XBRL using XBRL software tools designed for this purpose. Data from accounting databases can be extracted in XBRL format. It is not strictly necessary for an accounting software vendor to use XBRL; third party products can achieve the transformation of the data to XBRL. Applications can transform data in particular formats into XBRL. For example, web sites are in operation that can transform filings into XBRL format The route which an individual company may take will depend on its requirements and the accounting software and systems it currently uses, among other factors.
Technical Side of XBRL:
XBRL (eXtensible Business Reporting Language) is a freely available, market-driven, open, and global standard for exchanging business information. XBRL allows information modeling and the expression of semantic meaning commonly required in business reporting. XBRL is XML-based. It uses the XML syntax and related XML technologies such as XML Schema, XLink, XPath, and Namespaces to articulate this semantic meaning. One use of XBRL is to define and exchange financial information, such as a financial statement. The XBRL Specification is developed and published by XBRL International, Inc. (XII).
XBRL is a standards-based way to communicate and exchange business information between business systems. These communications are defined by metadata set out in XBRL taxonomies, which capture the definition of individual reporting concepts as well as the relationships between concepts and other semantic meaning. Information being communicated or exchanged is provided within an XBRL instance.
Information Modelling: An information model in software engineering is a representation of concepts, relationships, constraints, rules, and operations to specify data semantics for a chosen domain of discourse. It can provide sharable, stable, and organized structure of information requirements for the domain context.
XML: Extensible Markup Language (XML) is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the World Wide Web Consortium (W3C), and several other related specifications (XML discussed in detail later).
XML Schema: Technically, a schema is an abstract collection of metadata, consisting of a set of schema components: chiefly element and attribute declarations and complex and simple type definitions. These components are usually created by processing a collection of schema documents, which contain the source language definitions of these components. In popular usage, however, a schema document is often referred to as a schema. Schema documents are organized by namespace: all the named schema components belong to a target namespace, and the target namespace is a property of the schema document as a whole. A schema document may include other schema documents for the same namespace, and may import schema documents for a different namespace. a document written in the XML Schema language, typically containing the “xsd” XML namespace prefix and stored with the “.xsd” filename extension.
XLink: XML Linking Language, or XLink, is an XML markup language and W3C specification that provides methods for creating internal and external links within XML documents, and associating metadata with those links.
XML Namespaces: XML namespaces are used for providing uniquely named elements and attributes in an XML document. They are defined in a W3C recommendation. An XML instance may contain element or attribute names from more than one XML vocabulary. If each vocabulary is given a namespace, the ambiguity between identically named elements or attributes can be resolved.
A simple example would be to consider an XML instance that contained references to a customer and an ordered product. Both the customer element and the product element could have a child element named id. References to the id element would therefore be ambiguous; placing them in different namespaces would remove the ambiguity.
An XML namespace is declared using the reserved XML pseudo-attribute xmlns or xmlns:prefix, the value of which must be a valid namespace name.
For example, the following declaration maps the “xhtml:” prefix to the XHTML namespace:
xmlns:xhtml=”http://www.w3.org/1999/xhtml”
Any element or attribute whose name starts with the prefix “xhtml:” is considered to be in the XHTML namespace, if it or an ancestor has the above namespace declaration.
It is also possible to declare a default namespace. For example:
xmlns=”http://www.w3.org/1999/xhtml”
In this case, any element without a namespace prefix is considered to be in the XHTML namespace, if it or an ancestor has the above default namespace declaration.
Attributes are never subject to the default namespace. An attribute without an explicit namespace prefix is considered not to be in any namespace.
Elements and Attributes: Data can be stored in child elements or in attributes. For example:
- <person gender=”female”>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
2. <person>
<gender>female</gender>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
In the first example gender is an attribute. In the second, gender is a child element. Both examples provide the same information. There are no rules about when to use attributes, and when to use child elements. Some of the problems with attributes are:
- cannot contain multiple values (child elements can);
-
are not easily expandable (for future changes);
-
cannot describe structures (child elements can)
Taxonomy: Taxonomy is the practice and science of classification. Typically this is organized by supertype-subtype relationships. For example: car is a subtype of vehicle, so any car is also a vehicle, but not every vehicle is a car. Therefore a type needs to satisfy more constraints to be a car than to be a vehicle. Another example: any shirt is also a piece of clothing, but not every piece of clothing is a shirt. Hence, a type must satisfy more parameters to be a shirt than to be a piece of clothing.
How XBRL Works: Instead of treating Financial Information as block of text, XBRL provides a computer readable tag to identify each individual item of data. Through the attachment of ‘Identifying Tags’ to individual pieces of data, a business reporting document becomes “intelligent data”, allowing the exchange of business reporting data by encoding the information in a meaningful way. Computer applications can use the XBRL data to recognise the information in XBRL document, select it, analyse it, store it, exchange it, with other computers and present it in various ways for the users. XBRL Tags are defined and maintained in ‘taxonomies’ which contain metadata (data about data). Taxonomies are the basis for tagging financial information in XBRL. A Taxonomy is an electronic classification system of tags defining thousands of business reporting concepts and their relationships. The Taxonomy provides organization and details for each concept, including labels, definitions, accounting balance (i.e. Dr. or Cr.), presentation and summation information.
Instance Document: An “Instance Document” is the end result of how a preparer creates XBRL Data. It contains report information typically complied from internal ERP or financial reporting systems that have been “marked up” or tagged in XBRL. XBRL is extensible (i.e. can be extended) since a preparer can create, define and describe new tags unique to its particular circumstances. Tagging financial data in XBRL is similar to use of Bar Codes as used for various products.
XBRL Overview
XBRL Taxonomy Example
XBRL Data in human readable form:
XBRL Data in machine readable form (as per Taxonomy):
XBRL – a layman approach:
XBRL is based upon XML and XSD platforms. To understand XBRL, the following must be understood first:
- Mark Up, Markup and Tags;
-
What makes XML;
-
Well-formed Data;
-
Schemas; and
-
Transforms
Mark up, Markup and Tags: School teachers mark up student papers all of the time. They tell students to move paragraphs, clarify sentences, correct misspellings, and so on. Marking up a document is how we define the structure, meaning, and visual appearance of the information in the document. Using the “Track Changes” feature in Microsoft Office Word, is nothing but a computerized form of mark up. In computing, “mark up” has also evolved into “markup”. Markup is the process of using codes called “tags” (or sometimes tokens) to define the structure, the visual appearance, and — in the case of XML — the meaning of any data.
The HTML code is a good example of computer markup at work. If one browse through it (in Microsoft Internet Explorer, right-click the page, and then click View Source), one will see a mix of readable text and Hypertext Markup Language (HTML) tags, such as <p> and <h2>. Tags in HTML and XML documents are easy to recognize because they are surrounded by angle brackets. In the source code, the HTML tags do a variety of jobs, such as define the beginning and end of each paragraph (<p> … </p>) and mark the location of each image.
XML vs. HTML: HTML and XML documents contain data that is surrounded with tags. But that is where the similarities between the two languages end. In HTML, the tags define the look and feel of the data — the headlines go here, the paragraph starts there, and so on. In XML, the tags define the structure and meaning of oner data — what the data is. Describing the structure and meaning of the data, makes it possible to reuse that data in any number of ways. For example, if one have a block of sales data and each item in the block is clearly identified, one can load just the items that one need into a sales report and load other items into an accounting database.
Putting in another way, one can use one system to generate his data and mark it up with XML tags and then process that data in any number of other systems, regardless of the hardware platform or operating system. This portability is why XML has become one of the most popular technologies for exchanging data.
One cannot use HTML in place of XML. One can, however, wrap oner XML data in HTML tags and display it in a Web page. HTML is limited to a predefined set of tags that all users share. XML allows one to create any tag that one need to describe the data and the structure of that data. For instance, say that one need to store and share information about pets. The following XML code can be created:
XML Code:
<?xml version=”1.0″?> <CAT>
<NAME>Izzy</NAME>
<BREED>Siamese</BREED>
<AGE>6</AGE>
<ALTERED>yes</ALTERED>
<DECLAWED>no</DECLAWED>
<LICENSE>Izz138bod</LICENSE>
<OWNER>Colin Wilcox</OWNER> </CAT>
One can see that XML tags make it possible to know exactly what kind of data that one is looking at. For example, one know this is data about a cat, and one can easily find the cat’s name, age, and so on. The ability to create tags that define almost any data structure is what makes XML “extensible” One shouldn’t confuse the tags in that code sample with tags in an HTML file. For instance, if one paste that XML structure into an HTML file and view the file in oner browser, the results will look something like this:
Izzy Siamese 6 yes no Izz138bod Colin Wilcox
The browser ignores oner XML tags and displays just the data.
Well formed data: A well-formed XML file conforms to a set of very strict rules that govern XML. If a file doesn’t conform to those rules, XML stops working. For example, in the previous code sample, every opening tag has a closing tag, so the sample adheres to one of the rules for being well-formed. If one removes a tag and try to open that file in one of the Office programs, one will see an error message, and the program will stop one from using the file. One don’t necessarily need to know the rules for creating well-formed XML, but one do need to remember that one can share XML data among programs and systems only if that data is well-formed. If one can’t open an XML file, chances are that file isn’t well-formed. XML is also platform-independent, meaning that any program built to use XML can read and process your XML data, regardless of the hardware or operating system. Because it is so portable, XML has become one of the most popular technologies for exchanging data between databases and user desktops.
Schema: A schema is just an XML file that contains the rules for what can and cannot reside in an XML data file. Schema files typically use the .xsd file name extension, while XML data files use the .xml extension. Schemas allow programs to validate data. They provide the framework for structuring data and ensuring that it makes sense to the creator and any other users. For example, if a user enters invalid data, such as text in a date field, the program can prompt the user to enter the correct data. As long as the data in an XML file conforms to the rules in a given schema, any program that supports XML can use that schema to read, interpret, and process the data.
The following schema defines the rules for the <CAT> … </CAT> tag set:
<xsd:element name=”CAT”> <xsd:complexType>
<xsd:sequence> <xsd:element name=”NAME”
type=”xsd:string”/> <xsd:element name=”BREED”
type=”xsd:string”/> <xsd:element name=”AGE”
type=”xsd:positiveInteger”/> <xsd:element name=”ALTERED”
type=”xsd:boolean”/> <xsd:element name=”DECLAWED”
type=”xsd:boolean”/> <xsd:element name=”LICENSE”
type=”xsd:string”/> <xsd:element name=”OWNER”
type=”xsd:string”/> </xsd:sequence> </xsd:complexType> </xsd:element>
- The line items in the sample schema are called declarations. If you needed additional information about an animal, such as its color or markings, chances are that your IT department would add a declaration to the schema. You can change your XML system as your business needs evolve.
- Declarations provide a tremendous amount of control over the data structure. For instance, the <xsd:sequence> declaration means that the tags, such as <NAME> and <BREED> , have to occur in the order that they are listed above. Declarations can also control the types of data that users can enter. For example, the schema above requires a positive number for the cat’s age, and Boolean (TRUE or FALSE) values for the ALTERED and DECLAWED tags.
Validation: When the data in an XML file conforms to the rules provided by a schema, that data is said to be valid. The process of checking an XML data file against a schema is called (logically enough) validation. The big advantage to using schemas is that they can help prevent corrupted data. They also make it easy to find corrupted data because XML stops when it encounters a problem.
Transforms: As mentioned earlier, XML also provides powerful ways to use or reuse data. The mechanism for reusing data is called an Extensible Stylesheet Language Transformation (XSLT), or simply, a transform. Transforms are where XML can really get interesting. One can also use transforms to exchange data between back-end systems, such as databases. For instance, say that Database A stores the sales data in a table structure that works well for the sales department. Database B stores the revenue and expense data in a table structure that is tailored for the accounting department. Database B can use a transform to accept data from Database A and write that data to the correct tables. The combination of data file, schema, and transform constitutes a basic XML system. The illustration given below shows how such systems typically work. The data file is validated against the schema and then rendered in any number of usable ways by a transform.
Role of Professionals:
Just as we use mobiles and computers all the time without knowing their functionality etc., similarly we do not need to know the technicalities of XBRL. Though XBRL filing is a complex process, use of a good user friendly software can help in XBRL filing to a great extent. In the initial years professionals like CA, CS, ICWA etc. have to spearhead the efforts in XBRL conversion. Later on also, their involvement shall be necessary for integrity of XBRL filings. Professionals can offer the following services in relation to XBRL.
An accounting professional is the best judge regarding the selection of correct account head. The same knowledge also helps him in selecting the right standard name of any account head (element) in taxonomy for any account head in balance sheet or profit & loss account (label). Incorrect selection leads to inaccurate results and analysis. For big corporates, there should be proper documentation for tagging. This is necessary as staff keeps on changing. Even the same person may use different element name for the same tag in different years. Proper rationale is necessary for selecting a particular tag vis-à-vis other similar ones. In the initial years, this can be a good assignment for professionals.
MCA Circular 14/2011 dated 8-4-2011 has reiterated that the integrity of documents certified by Professionals is their responsibility. General Circular no. 26/2011 dt. 18-05-11 has extended this responsibility to XBRL documents also. This means that professionals certifying documents in XBRL need to assure that they are correct, complete and there is no material discrepancy as compared to physical documents. XBRL assurance is not mandatory anywhere in the world. Its introduction in India seems to be a little premature as one needs to be an expert before assuring. Probably, some time should have been given to let them gain expertise in XBRL first.
(The author is the member of ICAI. He is engaged in IFRS – Audit and Advisory, FEMA, Valuation and XBRL Services. He can be approached at [email protected])
I am a Mormon. I would like you to explain what you meant in the quote bellow.
Good one
Good details and its usefulness especially in E Government Compliance.
Is any Institute teach all these things or Is it Internationally accepted.
Regards
Mahesh Raj
Tax Concultant
9971400528
its very nice
It is a very interesting article. Would it be useful to learn XBRL for an non professional accountant to help in his career? if so where should I learn it ?