Templates in XBRL's Global Ledger Framework 1.0

Working Group Note 17 February 2009

Copyright ©2009 XBRL International Inc., All Rights Reserved.

This version:
<http://www.xbrl.org/WGN/Templates/WGN-2009-02-17/Templates-WGN-WGN-2009-02-17.html>
Editors:
Eric E. Cohen, PricewaterhouseCoopers LLP <eric.e.cohen@us.pwc.com>
Gianluca Garbellotto, Iphix LLC <gg@iphix.net>

Status

Circulation of this Working Group Note is unrestricted. Other documents may supersede this document. Recipients are invited to submit comments to gl-feedback@xbrl.org, and to submit notification of any relevant patent rights of which they are aware and provide supporting documentation.

Abstract

"What goes around comes around" or "We all need a little reminder now and then".

A discussion on the use of XBRL GL to represent entries of all sorts that are known as "master", "repeating", "recurring", "standard", "master", and on why XBRL GL needs its own "templates" too.

Table of Contents

1 Conventions
2 Language independence
3 Introduction
4 Need for Template Entries
4.1 General Ledger Template Entries
4.2 Other Entries
4.3 USSGL
5 XBRL GL Elements
5.1 [entryType](gl-cor)
5.2 [documentType](gl-cor)
5.3 Other key fields for templates
6 Discussion?
7 Templates "for" XBRL GL
8 Mapping Templates
9 Conclusion

Appendices

A References
B Intellectual property status (non-normative)
C Document history (non-normative)
D Errata corrections in this document

End note


1 Conventions

2 Language independence

The official language of XBRL International's own work products is English and the preferred spelling convention is UK English.

3 Introduction

XBRL's Global Ledger Framework (XBRL GL) represents the information that is found in the General Ledger and sub-ledgers of multinational (and small business) operational, business and accounting systems, bridging information from original transaction to end reporting. Some of the data found in an accounting system is not historical in nature, but serves instead as a "library" of entries for later reuse. In this document, we discuss XBRL GL’s special data fields for maintaining master transaction/entry records used for reminders or as templates for later reuse.

These are "templates" as found in source (or as required in target) accounting/ERP applications. But XBRL GL can also be used to provide templates - pre-established structures of XBRL GL tags with missing or sample data - that help its own implementation, guiding consuming applications in the interpretation of different types of XBRL GL data or providing mapping information between different sets of XBRL GL, XBRL or XML data. These "templates for XBRL GL" and mapping templates will also be discussed in this document.

4 Need for Template Entries

There is information found within business and accounting systems that goes beyond historical records. Some entries are made to make planning and operations more efficient. Examples of these entries:

4.1 General Ledger Template Entries

Most accounting systems permit the creation of templates for periodic general ledger entries that are repetitive in nature. In some cases, the amounts are not in the template, only the accounts. In other cases, the amounts are included in the template.

For example, a company prepares its payroll every Tuesday. They recognise that some of the expenses from the payroll on the first Tuesday of the month likely relate to expenses from the prior month. The company therefore prepares a payroll entry to accrue the payroll expenses each month. The payroll accounts don’t change often, but the monetary amounts are different from month to month. Their accounting system lets them save a standard entry which they recall each month end to take care of the expenses.

The same company also has a series of manual entries they make at the end of each month, for depreciation, amortization, and other similar adjustments. Their depreciation and amortization entries do not change often, so the entry is similar month to month unless they make major acquisitions. Their accounting system lets them save a recurring entry which they recall each month end, adjust as necessary, and then post.

One of these manual entries is to reduce the value of prepaid accounts (such as prepaid insurance), where there is not only a template, but a fixed time period or number of repetitions over which the prepayment is recognised as an expense.]

4.2 Other Entries

The General Ledger is not the only place where templates are useful. Other examples of repetitive entries include:

  • Loan payments (such as automobile payments)
  • Garnishments against payroll (when amounts are taken out of an employee’s pay check for child support, repayment of loans, or other requirements with a period of time or fixed amount over which payments are made)
  • Periodic replenishment orders that are tracked and approved before becoming standard orders. As with the General Ledger entries above, these may include quantities and monetary values as a starting point, or they may omit them.

4.3 USSGL

The US Standardized General Ledger (http://www.fms.treas.gov/ussgl/) is an example not only of a standardised chart of accounts (which, of course, XBRL GL can represent), but also of templates, standardised lists of transactions to be used for recording the wide variety of anticipated accounting and budgeting events across governmental agencies. An upcoming document will explore the representation of the USSGL (Chart of Accounts, Account Transactions, Crosswalks, etc.) with XBRL GL in greater detail.

5 XBRL GL Elements

Where do you find the elements that you would use to create these representations? Most of them are found in the USK (US-UK Advanced Accounting) module. They were included in USK as we were told in the past that some countries’ regulators, where tracing entries to their manually posted source is especially important, would be concerned about any applications that included these capabilities. (This lets you know that some of the data fields in XBRL GL are more meaningful in some regions and business environments than others.)

5.1 [entryType](gl-cor)

The [entryType] is an enumerated field that is obviously useful for general ledger entries, but can be used for other types of “entries” as well. It should not be confused with the [entriesType], the key to XBRL GL files, although it should be used in conjunction with [entriesType]. (There are [entriesType] values that are associated with the General Ledger proper.) In addition, the enumerated [sourceJournalID] provides guidance into whether template entries are related to the General Ledger proper or to subledgers.

Some of the enumerated values for [entryType] of particular relevance to this document:

  • {standard}: This is “standard” template, one that generally does not include quantities or amounts. It should not be confused with “standard” entries, which are actually noted with the {adjusting} enumeration.
  • {recurring}: This is a template entry that does include quantities or amounts.
  • {other}: As noted, this is not specified, but can be used with other fields described later for other needs.

5.2 [documentType](gl-cor)

The [documentType] is another enumerated field, normally associated with trade documents. The values of {reminder} and {other} may be used with other fields for template requirements.

5.3 Other key fields for templates

We have highlighted key fields used in repeating, recurring, master, standard, template entries. The descriptions/definitions here are generally not taken from the taxonomy directly, where you can also find descriptions/definitions in the label linkbase.

[reversingStdId] (see description, “For standard, reversing, master, canceling or other entries”) A code or ID to identify a particular template entry. This code can be used across instances to tie a template ([entryType] of {standard} or {recurring}) with examples of its instantiation/use ([entryType] of {adjusting}). It can also be used to relate a cancellation entry with its original entry.

[recurringStDescription] A description of a recurring or standard entry, to help a user identify appropriate entries for use. For those who were wondering, this is not called a reversingStdDescription because the need for a description for a reversing entry is not as vital as that for a recurring entry; however an identifier to match the reversing entries across months was considered vital. Not an excuse, but a reason.

[frequencyInterval] and [frequencyUnit]: For a template that is used repeatedly, the time interval in which it should be used. Expressed in conjunction with [frequencyUnit]. A template that is used quarterly, for example, might have an interval of 3 and a unit of month.

[repetitionsRemaining]: For a template that is used repeatedly, the number of times that template should be used, after which it should become inactive or removed.

[nextDateRepeat]: For a template that is used repeatedly, the date the template should next be used to create a “real” entry.

[lastDateRepeat]: For a template that is used repeatedly, the date the template was last used to create a “real” entry.

[endDateRepeatingEntry]: For entries with a definite ending date, the data after which there should be no more repetitive uses.

6 Discussion?

Most people are surprised when they find out about the depth and the breadth of XBRL GL’s representative power. When they find out that XBRL GL can represent templates, libraries of entries maintained by many accounting products, they ask, “When would you ever want to move these templates from one system to another? They aren’t real entries! It is foolish to be able to represent them.”

XBRL GL’s ability to represent templates is useful for many reasons. Here are just three:

7 Templates "for" XBRL GL

One of the greatest values of XBRL GL is its flexible structure and the broad representational power that comes with it. XBRL GL can represent business and accounting data as found in any ERP system or accounting application, which means that its 350 elements or so can be combined in different ways to represent such different things as trial balances, ledgers, sub-ledgers, invoices, fixed assets lists, orders, bills of lading, project costing reports, and accounting entries. This is obviously a good thing, but it also represents the biggest challenge for those who approach XBRL GL and that sometimes find it difficult to understand the underlying data model and to apply it consistently for all these different purposes.

There are different ways to deal with this issue and to provide guidance for XBRL GL implementations. The XBRL GL Working Group has published a set of "best practice" annotated instance documents, available as a Working Group Note at the XBRL International web site [XBRL GL WGNs] or at [GaLaPaGoS]. These annotated instances show a best practice approach to the representation of specific documents, and provide possible alternatives and comments about the reasons for choosing one approach over another.

Discussions are under way between the XBRL GL WG and representatives from OMG [ 1 ] for a joint effort to create Unified Modeling Language (UML) models of how XBRL GL can be used to represent different documents, This will be another important tool to document the use of XBRL GL in different applications in a format that can be easily consumed and "understood" by software developers and IT professionals.

Moving from an educational/documentation oriented perspective to a more practical approach focused on implementation, an XBRL GL instance is perhaps the most immediate way to provide guidance on what fields and what structure should be used to represent a certain document with XBRL GL.

One template instance can be created for each type of document that needs to be represented, with an approach similar to the one used in the best practice annotated instances mentioned above, but intended for automatic consumption by a software application rather than for "human" use. The template can be used to guide the automatic consumption of an incoming XBRL GL document, or to provide indications on the fields required to generate one. If appropriate some fields in the template can be pre-populated with values that can be used as defaults in the generation/consumption process.

Also, a template can help firm up the basic set of elements "necessary and sufficient" to represent, say, an invoice, while still allowing the producing or consuming applications to add more information as required in a specific case. When you extend an XBRL FR taxonomy, you know that if you add your own elements and sum them up to existing elements in the base taxonomy then you will not have to worry about introducing data comparability issues. In the same way, you can add more information to an XBRL GL template knowing that any consuming application will still have what is required to unequivocally process the document, and interoperability will be guaranteed.

8 Mapping Templates

In its simplest and more immediate form, a mapping template in XBRL GL provides mapping information between two different representations, for example two (or more) different chart of accounts for consolidation purposes. In this case, two [account] structures, each one representing one CoA, are held together by an [entryDetail] structure to indicate to the processing application that one account (usually identified with a "primary" value of [accountPurposeCode]) maps to the other (usually identified with a "consolidating" value of [accountPurposeCode]) like in the fragment of XBRL GL instance below:

<gl-cor:entryDetail>
<gl-cor:lineNumber contextRef="now">
1
</gl-cor:lineNumber>
<gl-cor:account>
<gl-cor:accountMainID contextRef="now">
6200
</gl-cor:accountMainID>
<gl-cor:accountMainDescription contextRef="now">
Rent
</gl-cor:accountMainDescription>
<gl-cor:accountPurposeCode contextRef="now">
primary
</gl-cor:accountPurposeCode>
<gl-cor:accountType contextRef="now">
account
</gl-cor:accountType>
</gl-cor:account>
<gl-cor:account>
<gl-cor:accountMainID contextRef="now">
60200
</gl-cor:accountMainID>
<gl-cor:accountMainDescription contextRef="now">
Rent
</gl-cor:accountMainDescription>
<gl-cor:accountPurposeCode contextRef="now">
consolidating
</gl-cor:accountPurposeCode>
<gl-cor:accountType contextRef="now">
account
</gl-cor:accountType>
</gl-cor:account>
</gl-cor:entryDetail>

This simple model can be extended to cover cases in which the mapping from one account to another is not a 1 to 1 mapping, and the exact allocation depends on the value of other fields, like for instance products, departments, business units etc. This additional information can be included in the template, so that conditional mapping information like "if the department is 001 the primary account 100 maps to the consolidation account 1010, but if the department is 002 the primary account 100 maps to the consolidation account 1020" becomes easy to standardise.

A similar approach can be used to provide mapping information from detailed XBRL GL data to summarized data represented in XBRL FR or other formats based on XML. This is the space of the Summary Reporting Contextual Data (SRCD) module of XBRL GL. In this case the mapping is represented by one multiple [xbrlInfo] structures, one for each target XBRL FR or XML summarized representation, held together by an [entryDetail] structure, that also contains the detailed information being mapped. In the most basic situation one account can be mapped to one target element in an XBRL FR taxonomy:

<gl-cor:entryDetail>
<gl-cor:lineNumber contextRef="now">
1
</gl-cor:lineNumber>
<gl-cor:account>
<gl-cor:accountMainID contextRef="now">
1200
</gl-cor:accountMainID>
<gl-cor:accountMainDescription contextRef="now">
Cash
</gl-cor:accountMainDescription>
<gl-cor:accountPurposeCode contextRef="now">
primary
</gl-cor:accountPurposeCode>
<gl-cor:accountType contextRef="now">
account
</gl-cor:accountType>
</gl-cor:account>
<gl-cor:xbrlInfo>
<gl-cor:summaryReportingElement contextRef="now">
ifrs-gp:CashAndCashEquivalents
</gl-cor:summaryReportingElement>
</gl-cor:xbrlInfo>
</gl-cor:entryDetail>

Again, more complex conditional mappings can be represented including the additional information required to define the conditions in the template.

9 Conclusion

XBRL GL represents master files, transactions, history files, status files – and templates of entries (ledger and sub-ledger/operational). Key fields in XBRL GL are important for delineating the definitions and limits that relate to template entries – whether you call them master, repeating, recurring, standard or simply template entries.

One should always try to eat one's own dog food - and templates for XBRL GL and mapping templates help us do just that by putting XBRL GL's flexibility and representational power at work to facilitate XBRL GL based implementations.

Appendix A References

GaLaPaGoS
Iphix LLC. "GaLaPaGoS - Global Ledger Practices Guide for Study"
(See http://www.gl.iphix.net)
XBRL GL WGNs
XBRL International Inc.. "XBRL GL Working Group Notes"
(See http://www.xbrl.org/GlobalLedgerWGNotes/)

Appendix B Intellectual property status (non-normative)

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to XBRL International or XBRL organizations, except as required to translate it into languages other than English. Members of XBRL International agree to grant certain licenses under the XBRL International Intellectual Property Policy ( www.xbrl.org/legal ).

This document and the information contained herein is provided on an "AS IS" basis and XBRL INTERNATIONAL DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

The attention of users of this document is directed to the possibility that compliance with or adoption of XBRL International specifications may require use of an invention covered by patent rights. XBRL International shall not be responsible for identifying patents for which a license may be required by any XBRL International specification, or for conducting legal inquiries into the legal validity or scope of those patents that are brought to its attention. XBRL International specifications are prospective and advisory only. Prospective users are responsible for protecting themselves against liability for infringement of patents. XBRL International takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Members of XBRL International agree to grant certain licenses under the XBRL International Intellectual Property Policy ( www.xbrl.org/legal ).

Appendix C Document history (non-normative)

DateAuthorDetails
29 September 2008Gianluca Garbellotto

Initial document.

17 February 2009Gianluca Garbellotto

Editorial review.

Appendix D Errata corrections in this document

This appendix contains a list of the errata that have been incorporated into this document. This represents all those errata corrections that have been approved by the XBRL International XBRL GL Working Group up to and including 17 February 2009 . Hyperlinks to relevant e-mail threads may be followed only by those who have access to the relevant mailing lists. Access to internal XBRL mailing lists is restricted to members of XBRL International Inc.

No errata have been incorporated into this document.


End Notes

[1]
The Object Management Group, found at http://www.omg.org .