Expressing Financial Reporting Information Patterns Using XBRL
(The Patterns Document)

By Charles Hoffman, CPA

This information is a companion to the document "Expressing Financial Reporting Using XBRL" commonly referred to as "the Patterns Document", written by Charles Hoffman, CPA, over a three year period.  The information has been accumulated over the years and has been used to contribute to the XBRL 2.1 specification, FRTA, FRIS, the IFRS-GP and US GAAP taxonomies, directly and/or indirectly.  Information presented here is made available "as is".  However, every effort has been made to ensure the information is XBRL 2.1 compliant, FRTA compliant, and FRIS compliant (to the extent that FRIS validation is available).  Each XBRL instance document and taxonomy has passed through three different validators to ensure their accuracy.  If you wish further information, have comments, or have questions, please contact Charles Hoffman. (

The author would like to acknowledge the following individuals who have made significant contributions to this document, directly or indirectly: Josef Macdonald, Jim Richards, Roger Debreceny, Thomas Egan, Walter Hamscher, Jeff Naumann, David Prather, Geoff Shuetrim, David Scott Stokes, Alan Teixeira, Brad Homer, David vun Kannon, Rene van Egmond, Hugh Wallis.

Using this Information
This information is specifically created for financial reporting, however other domains can benefit from this information.  The contents are intended to show advanced and intermediate users of XBRL for financial reporting how to create what they desire to create; but a bold beginner will likely find this information useful.  It is highly recommended that the user of this information read the document, "Expressing Financial Reporting Information Using XBRL" prior to delving into this information.  Contact the author at the email address above to obtain this document.

On the left is a "Contents" page which has each of the financial reporting patterns listed, and information about that pattern.  Click on the links and the information will appear in the right hand pane, in place of this document.  Press the "Home" button on the contents page to return to this page.

Include here are the following for 20 common "patterns" found in financial reporting.  These patterns are listed in the left pane.  For each pattern the following information is presented (note that there is additional information which describes the characteristics of the pattern in the patterns document:

  1. A human readable version of the pattern so users can see what that pattern looks like (in PDF and HTML).
  2. An XBRL taxonomy (fully FRTA compliant) created to express the information contained in that pattern.
  3. Taxonomy printouts for the taxonomy (presentation, calculation and sometimes only the element list).
  4. An XBRL instance document (fully FRIS compliant) using the taxonomy mentioned above.
  5. An XSLT style sheet which generates the HTML rendering of the instance document information (see 1 above).
  6. An XSLT style sheet which generates the XSL-FO output (see 8 below) which can be used to create a PDF rendering (see 1 above) of the instance information in a human readable format.
  7. The HTML output as mentioned in 5 above.
  8. The FO output as mentioned in 6 above.
  9. The PDF output from the FOP which is generated by sending the FO to a rendering engine, which generates PDF.
  10. A calculation trace which shows that the numbers in the instance document add up correctly.

The following is a listing of the patterns shown.  The patterns build on one another.  Simpler patterns are shown first, more complex patterns shown later.  One concept is built upon at a time, giving the user of this information focus, learning one concept, then moving forward.  It is highly recommended to move from the top of the list to the bottom in trying to first grasp this information.  Once the information is understood, then this is a great reference for seeing how to achieve specific objectives. 

These patterns focus on the basics.  The more advanced concepts such as extension taxonomies, extension taxonomy issues, scenarios, segments, using substitution groups, issues mapping actual data to taxonomies, etc. are not covered here.  Please contact the author for additional information in these areas.

  1. Simple concept - one concept (helps show what belongs in a taxonomy and what goes in the instance document).
  2. Unrelated concepts - several unrelated concepts (shows information about different data types, balance types, etc).
  3. Related concepts - several related concepts (introduces the concept of the presentation link base).
  4. Basic calculation - related concepts involved in a calculation (introduces the concept of the calculation linkbase).
  5. Net/gross calculation - net/gross type of calculation (introduces the concept of calculation weights and the balance attribute).
  6. Table of numeric concepts - a simple table (ties presentation and calculation together, creating a little more complicated taxonomy and instance document).
  7. Grand total with subtotals calculation - several interrelated calculations (shows how to handle subtotals).
  8. Movement analyses - a simple movement analysis, beginning balance, changes, ending balance (introduces "the movement analysis" which is one of the more complex patterns in XBRL, shows some limitations XBRL has in doing calculations).
  9. Multiple calculations - multiple calculations for the same base concept (introduces the concept of extended links to separate networks of calculations, or different ways to arrive at the same value).
  10. Finite number of values for concepts - finite number of values in a list (introduces the concept of "lists" of information by showing something which is NOT a list).
  11. Complex concept (tuple) - a complex data type, related information which repeats (introduces the "tuple" and complex data which needs to be tied together).
  12. Multiple values for one concept - data which repeats (points out that any repeating data probably needs a tuple).
  13. Complex concept with totals - data which repeats and has calculations associated with it (shows how to do calculations within a tuple, and totaling the members of tuples).
  14. Complex concept with multiple periods - multiple periods of data within repeating data (shows how to handle multiple periods within a tuple).
  15. Reuse of concepts pattern - using a set of concepts in multiple places (shows how to reuse a tuple).
  16. Master/Detail - nested complex data or complex data which contains additional complex data (introduces nested tuples, or a tuple within a tuple).
  17. Allowing for different levels of disclosure - allowing for different levels of presenting information (shows a way to ease into XBRL and shows the difference between an abstract element and a string and how it impacts what a user can do with a taxonomy).
  18. Movements in Tuple - a repeating movement analysis (shows how to do a movement analysis within a tuple).
  19. Grouped Report - complex repeating data summarized in a report (shows how to express a complicated set of data).
  20. Reconciliation - reconciliation of one account to another account using a list of data (shows how to reconcile two concepts, not necessarily a beginning and ending balance, using the members of a tuple).

The following "reconciles" certain financial reporting patterns to XBRL patterns.  Accounts typically understand these terms, pick the pattern which matches what you are trying to express:

  1. Balance Sheet, Income Statement - Table of numeric concepts.
  2. Cash Flow Statement - Table of numeric concepts, Movements analysis.
  3. Statement of Equity - Movements analysis.
  4. Accounting Policies - Related concepts.
  5. Financial Highlights - Unrelated concepts.
  6. Related parties and related party transactions disclosures - Master/Detail.
  7. Reconciliation between net income per IFRS and net income per US GAAP - Reconciliation.
  8. Breakout of property, plant and equipment by class - Basic calculation.
  9. Subsequent Events - Multiple values for one concept.
  10. Maturities of debt over the next five years - Finite number of values.
  11. Breaking out tax by current and deferred portions, and by foreign and domestic - Multiple calculations.
  12. Move coming soon...



* * *

Copyright December 2004 UBmatrix