About

What Is This?

It's a set of data collected from the 10-K, 10-K/A, 10-Q, 10-Q/A, 20-F, and 20-F/A filings  of US listed companies as sent to the SEC in XBRL format. These filings have been downloaded, processed, and the data uploaded here so that it can be visualized using a simple graph.

The entire SEC XBRL data set has been processed up to the end of the previous month.

Philosophy

About The Data

Duplicates/Amendments

If there are two or more facts that have the same context and dimensionality, but different values, the most recently filed one is displayed.

If there are two facts that have the same context, dimensionality and filing date, they are the most recent, and one was filed as part of an amendment, the one filed as part of an anamendment is displayed.

If there are two or more facts that have the same context, dimensionality, filing date, they are the most recent, and neither or all were filed as part of an amendment, one is chosen at random. This shouldn't happen.

Concepts Over Time

As any US filer is aware, the SEC continually releases new taxonomies for filing XBRL data. This being the case elements have different namespaces over time. For example, a filer reporting their assets in 2009 would have used us-gaap:Assets where us-gaap equals "http://xbrl.us/us-gaap/2009-01-31" but a filer filing assets in 2013 would have used us-gaap:Assets where us-gaap equals "http://fasb.org/us-gaap-std/2013-01-31". How can we then graph Assets over time if the XML elements are not strictly equal? Simple, we match on name. "Assets" is considered "Assets" no matter its target namespace (this applies to all elements).

This approach could produce some inconsistencies, but I feel that the likelihood of this is low enough that its simplicity is warranted. It may be possible to maintain a mapping of deprecated elements and their replacements, but this would make queries much more complex and time consuming.

Also, this may encourage the adoption of things like the XBRL versioning spec, which would make maintaining such mappings much, much easier.

Duration Concepts

It’s a trivial matter to create a line graph of a number of facts that occur at a number of particular instants in time. Just arrange them in order of time on the X axis, by value on the Y axis, and connect the dots from left to right. Indeed this is exactly how a concept like Assets is graphed. Facts that represent a duration in time are a little trickier. Cash flow for example, is generally recorded as how much flow occurred over a period (e.g. a quarter or YTD).

To make things even more difficult most US filers report information for multiple durations for the same concept! For example, in Q1 over the quarter, in Q2 and Q3 over the quarter and YTD, and finally over the entire year. This can result in many overlapping periods (six, in this example) that cannot all be graphed at the same time.

With this in mind, only duration concepts that represent an entire year (annual) or those that represent a quarter (quarterly) are displayed. For quarterly facts, sometimes one quarter can be "missing" (e.g. Q1, Q2, Q3, Q1). This is due to the way that 10Q/10K filings happen, Q4 is generally not reported separately in the annual filing. The data point could be inferred, but here only what data is reported is displayed.

Technology

This app runs on IBM Bluemix. Bluemix is a platform as a service (PaaS) offering based on the Cloud Foundry open source project that promises to deliver enterprise-level features and services that are easy to integrate into cloud applications.

More Info »

To build a databse of XBRL data and to display it here I use Node.js. Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

More Info »

Currently there are  data points being indexed. The backing store is Cloudant. Cloudant is a "NoSQL" database, which is ideal for storing the arbitrarily dimensional data that XBRL provides.

More Info »

Source

All the source code for this website and the application to build the data is available publicly.

Build the database: XbrlBuilder »

Build the website: XbrlServer »

IBM developerWorks has an article I wrote detailing how to recreate this app. It provides a simple how-to, along with some of the trials and tribulations I went through, or "lessons learned" if you will.

More Info »

Contact

Get ahold of the developer

ted@tedp.net
http://tedp.net

Use of this website is governed by the IBM Terms of Use.

DISCLAIMER OF WARRANTY

USE OF THIS SITE IS AT YOUR SOLE RISK. ALL MATERIALS, INFORMATION, PRODUCTS, SOFTWARE, PROGRAMS, AND SERVICES ARE PROVIDED "AS IS," WITH NO WARRANTIES OR GUARANTEES WHATSOEVER. IBM EXPRESSLY DISCLAIMS TO THE FULLEST EXTENT PERMITTED BY LAW ALL EXPRESS, IMPLIED, STATUTORY, AND OTHER WARRANTIES, GUARANTEES, OR REPRESENTATIONS, INCLUDING, WITHOUT LIMITATION, THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT OF PROPRIETARY AND INTELLECTUAL PROPERTY RIGHTS. WITHOUT LIMITATION, IBM MAKES NO WARRANTY OR GUARANTEE THAT THIS WEB SITE WILL BE UNINTERRUPTED, TIMELY, SECURE, OR ERROR-FREE.

YOU UNDERSTAND AND AGREE THAT IF YOU DOWNLOAD OR OTHERWISE OBTAIN MATERIALS, INFORMATION, PRODUCTS, SOFTWARE, PROGRAMS, OR SERVICES, YOU DO SO AT YOUR OWN DISCRETION AND RISK AND THAT YOU WILL BE SOLELY RESPONSIBLE FOR ANY DAMAGES THAT MAY RESULT, INCLUDING LOSS OF DATA OR DAMAGE TO YOUR COMPUTER SYSTEM.

SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF WARRANTIES, SO THE ABOVE EXCLUSIONS MAY NOT APPLY TO YOU.

LIMITATION OF LIABILITY

IN NO EVENT WILL IBM BE LIABLE TO ANY PARTY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY TYPE WHATSOEVER RELATED TO OR ARISING FROM THIS WEB SITE OR ANY USE OF THIS WEB SITE, OR OF ANY SITE OR RESOURCE LINKED TO, REFERENCED, OR ACCESSED THROUGH THIS WEB SITE, OR FOR THE USE OR DOWNLOADING OF, OR ACCESS TO, ANY MATERIALS, INFORMATION, PRODUCTS, OR SERVICES, INCLUDING, WITHOUT LIMITATION, ANY LOST PROFITS, BUSINESS INTERRUPTION, LOST SAVINGS OR LOSS OF PROGRAMS OR OTHER DATA, EVEN IF IBM IS EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THIS EXCLUSION AND WAIVER OF LIABILITY APPLIES TO ALL CAUSES OF ACTION, WHETHER BASED ON CONTRACT, WARRANTY, TORT, OR ANY OTHER LEGAL THEORIES.

© IBM. All rights reserved. | Photos by Fotogrph | Design by TEMPLATED (modified to work with Bootstrap)