Implementing XBRL, 2005


Published on

Published in: Business
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Implementing XBRL, 2005

  1. 1. Implementing XBRLThis document describes one of the ways of automating report generation.XML: The Taxonomy Based Data formatExtensible Markup Language (XML) is a universally preferred datadescription language used to describe the data we store, manipulate,and exchange via the web. The basis for this technology is a "tagging"process by which each value, item, and descriptor, etc. in theexchanged information can be given a unique set of tags with which todescribe it. Using these tags, computer programs can read the datawithout human intervention. In short, XML is a language designed todevelop other languages, such as XBRL.Taxonomy Standards, Public and PrivateXML is a language designed to develop other languages. We have allused “tags” to exchange information. What’s your “NAME” and“PHONE” number? What is the “BALANCE” of my account? XML usesgroups of tags in the form of “Taxonomy” to describe data for aparticular audience. Ernst & Young LLP is a founding sponsor of XBRLInternational which is developing Business Reporting Taxonomies(XBRL). These taxonomies will be used when storing or exchangingfinancial and operational information internally in a company, andwhen reporting externally to investors, analysts, regulators andcustomers. Its global standards consortiums are currently developingtaxonomies for both vertical industry and horizontal cross-industrygroups.What Is an XBRL?XBRL is an XML based taxonomy with which users can prepare,publish (in a variety of formats), exchange and analyze financialstatements and the information they contain. An XBRL InstanceDocument is a business report, such as a financial statement preparedto the XBRL specification. The meaning of each value in the InstanceDocument is explained by the taxonomy.An XBRL enabled application will read this information and compare itto a published XBRL definition, and extract the informationaccordingly.XBRL is developed by XBRL International, a consortium sponsored bythe American Institute of Certified Public Accountants started in 1999.
  2. 2. This group is committed to developing and promulgating a world-widestandard, and corresponding taxonomies, for storing or exchangingbusiness reporting information.XBRL is gaining acceptance throughout the business reportingcommunity. The XBRL consortium developing the taxonomiesrequired by many web enabled reporting processes has completed agreat deal of work. Acceptance and implementation of this newstandard is driven by heightened emphasis on financial reportingrequirements such as those described in the Sarbanes-Oxley Act.Executives, financial reporting process owners and IT professionalsshould consider the following points when developing animplementation strategy for XBRL.Evgenios Skitsanos © 2005 2
  3. 3. USFRTF Framework SummaryTaxonomies and On-fly Report GenerationThe US Financial Reporting Taxonomy Framework is a collection ofXBRL taxonomies that will be used to express the financial statement-based reports of both public and private companies across all industrysectors. Different components of the framework will be used fordifferent reporting purposes, and new components will be added overtime to cover more diverse reporting needs.Summary of types of Components or LayersThe following is a summary of the types of components or “layers”contained in the US Financial Reporting Taxonomy Framework: • Stand alone add-ons • Common terms • Industry termsStand Alone Add-onsStand Alone Add-ons are self-contained DTSs that may be used bycreators of XBRL Reports. These components include a schema file andall linkbases (presentation, label, calculation, reference and definition)as appropriate. They are not referenced or imported by the GAAPIndustry extension DTSs because they: • Are not universally needed by users of the Industry Extension Taxonomies • May be updated, superseded or replaced by other external components independent of changes to the Industry Extension TaxonomiesUsers who wish to take advantage of the Stand Alone Add-Ons caneither import the add-on components into their company extensiontaxonomy or use the add-on components directly in their instancedocument.NOTE: In previous versions of the taxonomy framework, thesecomponents were imported directly into the Industry ExtensionTaxonomies.Industry Taxonomy LayerEvgenios Skitsanos © 2005 3
  4. 4. Users creating company extensions or instance documents willnormally select a single primary taxonomy from the IndustryTaxonomy Layer. The Industry Taxonomies specialize and extend theconcepts defined in the common terms layer and build relationshipsbetween these concepts using the presentation and calculationlinkbases.ComponentsThe following is a summary of components in the USFRTF: Namespace Name Layer Description Prefix int-gcd Global Common Stand Alone Add-on Contains information Document that is specific to the document being created or the entity that issues the document. For example, general information about the title of the document, its creator, revisions to the document, the name of the entity and the industry in which the entity operates. usfr-ar Accountants Report Stand Alone Add-on Contains information that describes the independent accountants’ report, if one is issued, such as the name and signature of the independent auditor/accountant. usfr-fst Financial Services Common Terms Layer This financial Terms reporting taxonomy is intended to provide detail level accounting terms that are typically included in financial statements. This taxonomy includes such terms that are common solely to the financial services sector.Evgenios Skitsanos © 2005 4
  5. 5. usfr-mda Management Stand Alone Add-on Includes information Discussion and for the section of Analysis then annual report where the company’s management provides analysis on results of operations, financial position and other issues. usfr-mr Management Stand Alone Add-on Information Report contained within the Management Report which typically accompanies audited financial statements. usfr-pt Primary Terms Common Terms Layer This financial reporting taxonomy is intended to provide detail level accounting terms that are typically included in financial statements. This taxonomy includes such terms that are common to multiple major industries. usfr-sec- SEC Officers Stand Alone Add-on Information cert Certification contained in the Officers Certification report as mandated by the Sarbanes- Oxley Act 0f 2002 us-gaap-ci Commercial and Industry Taxonomy This taxonomy is Industrial Layer intended to provide Companies the accounting concepts and relationships to allow Commercial and Industrial entities to express their financial statements in XBRL. This taxonomy builds on top of the Common Terms layer and may serve as the basis for further details industry extensions. us-gaap- Banking and Industry Taxonomy This taxonomy isEvgenios Skitsanos © 2005 5
  6. 6. basi Savings Institutions Layer intended to provide the accounting concepts and relationships to allow banking related entities to express their financial statements in XBRL. This taxonomy builds on top of the Common Terms layer. us-gaap-ins Insurance industry Industry Taxonomy This taxonomy is Layer intended to provide the accounting concepts and relationships to allow insurance related entities to express their financial statements in XBRL. This taxonomy builds on top of the Common Terms layer.ElementsThe basic strategy for elements is to provide one element for onefinancial reporting concept. If there is reasonable question as towhether two concepts are always identical, the taxonomy errs on theside of creating two elements, rather than forcing what may be twoconcepts into one concept.Each element within a taxonomy has a unique name and ID expressinga unique financial reporting concept. Element names have beencreated in conformance with the LC3 convention as prescribed in FRTA1.0. Element names remain largely unchanged from previous versionsof the taxonomy framework; a map of name changes for those thathave been modified will be circulated with the taxonomies.This version of the taxonomy framework contains a robust level ofelements for the disclosures typically found in the financial statementsfor the selected industries. Building on to the methods used to create,validate and test the previous iterations of the taxonomy; additionalefforts have gone into analyzing a wider range of financial statementsto ensure the taxonomies have sufficient elements to meet marketneeds.Evgenios Skitsanos © 2005 6
  7. 7. However, it is not practical or realistic to include every possibleaccounting concept or disclosure in these common taxonomies due tocompany specific disclosures and aggregations. It is expected thatmany if not all companies will require an extension taxonomy to coverthose terms not in the taxonomy.Elements for the notes to the financial statements are provided on asummary level throughout, and in varying levels of detail for certainspecific notes. Over time, this framework of disclosures for the notes tothe financial statements will be built out to provide all of the detailedelements required. It is possible to tag a complete set of notes to thefinancial statements using the taxonomy as its structured today; futureefforts will provide the capability for this tagging to occur at a moredetailed level.LabelsA unique, standard label (standard label role) is provided for everyelement within each taxonomy. A full set of labels is also provided forthe terse label role, these labels are NOT unique. Additional label rolesare utilized on an as needed-basis, for example period end labels.All labels are in English as used in the United States. Additional labelsfor different labels may be provided at a later time. For example, theUS Domain Working Group is currently working with the JapanDomain Working Group to explore how to provide a set of Japaneselabels for the taxonomy.As with previous versions of the taxonomy, documentation or ‘humanreadable’ definitions are provided for the elements in the taxonomy.These brief descriptions are intended to provide users with an easy,non-authoritative mechanism to understand the accounting orreporting concept that an element represents.In previous versions of the taxonomies, these definitions were includedthe XML Schema “documentation” element of the taxonomy schema.For this taxonomy release the definitions have been moved to thedocumentation label role of the label linkbase in accordance with FRTA1.0 rule 2.1.13.ReferencesReferences are currently provided for many elements but have not yetbeen completed for all elements in the taxonomy. Elements in thecurrent taxonomy release which do have references defined may notEvgenios Skitsanos © 2005 7
  8. 8. have a complete set of references across all the different possiblesources of references.The US Domain Working Group currently has a subcommittee workingon updating the references to ensure consistency amongst referencesources and to complete the reference linkbase to cover all elements inthe taxonomy.PresentationThe presentation link base provides an organizational hierarchy ofelements in the taxonomy to make it easy for users and reviewers of thetaxonomy to find specific content within the taxonomy; in generalterms this hierarchy follows the organization of a set of financialstatements.Abstract elements are used throughout the presentation linkbase asdescribed in rule 3.2.7 of FRTA 1.0 to provide additional organization.Separate extended link roles are also used to define the major separatepresentation networks found within the taxonomies.CalculationCalculation linkbases are provided to document all calculations that aretrue within a context. Calculations are NOT provided across contextsas XBRL does not support these types of calculations at this time.When the formula linkbase is completed additional calculations will beprovided, including calculations across contexts such as those used toexpress reconciliations between a beginning balance to an account,changes to that account, and the ending balance to an account(movement analysis).Separate extended link roles are used where there are multiplecalculation networks for elements within the taxonomies.DefinitionsNo definition linkbases have been provided as part of this taxonomyrelease; they may be included as enhancements to future releases of thetaxonomy, but there are no immediate plans to create definitionlinkbases for the taxonomies.Sample InstanceSample instance documents have been provided for each industrytaxonomy, which may be useful in helping you understand how thetaxonomy works and is intended to be used. If you are confused byEvgenios Skitsanos © 2005 8
  9. 9. something in the taxonomy, look for that information in the sampleinstance documents to see if the context helps explain the taxonomycontent.Data fields to Taxonomy Elements mappingIn order to generate XBRL Instance Document that later on used forReport generation, BaPRO uses Field-To-Element mapping technique.This mapping allows us to map database field that contains requireddata to XBRL Taxonomy element. During Instance Documentcompilation, engine will extract data only predefined by map that wasmade for this report type.Some of Taxonomy Elements represents formulas and in order to getappropriate data to represent in Instance Document engine have topass additional step – calculation.Report GenerationGenerally speaking Report has two types of information represented onit. There are textual labels that describe information that we arereporting and actual data facts that can be represented with numbers,text or even diagram/flow chart graphics.On stage of Report Generation BaPRO engine look into Taxonomiesdatabase to collect information about how to display the report.Basically engine knows that there are some elements should berepresented as data facts in final report and in order to represented inreadable format engine will use labelling (among with descriptions)information found within the Taxonomy used for this report.Based on this collected data BaPRO engine can generate XSLTtemplate that will be applied on top of Instance Document generatedearlier via using data field to element mapping.XML PerformanceLess elements, more attributesOne of the tricks to speedup XML performance is to create an XMLmodel where you have less amount child elements used compare tonumber of attributes that you can embed into your xml.Very common XML usage: <line> <recordID>0000001437</recordID>Evgenios Skitsanos © 2005 9
  10. 10. <accountID>4115</accountID> <documentID>A_AUDI</documentID> <effectiveDate>2003-02-28</effectiveDate> <description>Afschrijftermijn 12</description> <debitAmount>133.88</debitAmount> <costDesc>V-RD</costDesc> <projectDesc>OKS</projectDesc> </line>High performance XML:<line projectDesc="OKS" recordID="0000001437" accountID="4115"documentID="A_AUDI" effectiveDate="2003-02-28"description="Afschrijftermijn 12" debitAmount="133.88" costDesc="V-RD"/>XML in this case will spend much less time on parsing this data as ithas only one element to go through compare to 9 elements as it shownin first case.Consider Element and Attribute Name LengthsConsider the length of the element names and the length of theattribute names that you use. These names are included as metadata inyour XML documents. Therefore, the length of an element or attributename affects the document size. You need to balance size issues withease of human interpretation and future maintenance. Try to usenames that are short and meaningful.Write Efficient XSLTWhen you develop XLST style sheets, start by making sure that yourXPath queries are efficient. Here are some common guidelines forwriting efficient XSLT style sheets: § Do not evaluate the same node set more than once. Save the node set in a <xsl:variable> declaration. § Avoid using the <xsl:number> tag if you can. For example, use the Position method instead. § Use the <xsl:key> tag to solve grouping problems. § Avoid complex patterns in template rules. Instead, use the <xsl:choose> tag in the rule. § Be careful when you use the preceding[-sibling] or the following[-sibling] axes. Use of these axes often involves algorithms that significantly affect performance.Evgenios Skitsanos © 2005 10
  11. 11. § Do not sort the same node set more than once. If necessary, save it as a result tree fragment, and then access it by using the node- set() extension function. § To output the text value of a simple #PCDATA element, use the <xsl:value-of> tag in preference to the <xsl:apply-templates> tag. § Avoid using inline script. Use extensions written in Microsoft Visual C# or Microsoft Visual Basic .NET to pass it as a parameter to the Transform call, and then bind to it by using the <xsl:param> tag. However, if you cache the style sheet in your application as described earlier, this achieves the same result. It then is perfectly acceptable to use script in the style sheet. In other words, this is just a compile-time issue.Factor common queries into nested templates. For example, if you havetwo templates that match on "a/b/c" and "a/b/d," factor the templatesinto one common template that matches on "a/b." Have the commontemplate call templates that match on "c" and "d."References 1. “US GAAP XBRL Taxonomy Framework”, by Charles Hoffman and Bradford Homer, 2004 2. “XBRL Inside”, by Evgenios Skitsanos, BaPRO © 2005Evgenios Skitsanos © 2005 11