In a previous post I mention how metadata will reduce costs. Metadata also increases functionality.
I put together a prototype system which provides information about SEC financial filings filed with the SEC. The prototype uses a set of 291 public company 10-K filings which I was analyzing (i.e. it does NOT contain all of the approximately 8,000 public companies which report to the SEC, only 291). The system uses:
- SEC XBRL financial filing information
- Metadata and infosets provided by XBRL Cloud
- Metadata provide by StockSmart
- Metadata which I added to the system
The prototype information system is basically a Microsoft SQL Server database. MS SQL has an XML data type. There is ZERO XBRL being used by this system. All the information was grabbed from the SEC XBRL financial filings, processed into easier to use infosets, the infosets are organized and stored in the MS SQL database (rather than the XBRL).
In my view, this is how people will work with financial information reported using XBRL. Imagine how long it would take for something like the following query to execute:
"Go to each SEC XBRL filing (in the set of 291 filings), get Assets, liabilities and equity, equity, net income (loss), net cash flow, revenues, income (loss) from continuing operations, income tax expense (benefit), current assets, and current liabilities for each of those filings."
Downloading the 291 files in order to read the information with even good bandwidth would take quite some time. But, click on this link and you can see how long it takes the database to return that information. (From my computer it takes about 5 seconds)
You can fiddle around with all the XML (machine readable, try using Excel) and HTML (human readable) pages I made available. But let me walk you through a few things so that you can see the power of metadata.
- Grouping by industry: Here is a list of core financial information from the 291 filings. Want to group that information by industry? Well, to do that you first have to have a set of industries. Here are three industry groupings which I have: (a) SIC Codes, but those tend to be too granular for my needs; (b) Industry/sectors, that is not too bad a list; (c) Subindustrys, this is someone else's list and not necessarily a "standard" list. In fact, who has the "standard list" of industries? Don't know that there even is one. But, in order to group information by industry, you have to pick some list and make sure each entity is mapped to that list. Here is a list of entities which has been mapped to all three of those lists. I picked "(b)" which allows me to group the entities, and generate this grouping by industry.
- Comparing balance sheets: Seems like a simple thing, you want to compare the model structure of each of the 291 filings and see how each modeled the balance sheet. Easy enough. Or is it? Well, take a look at the networks used to identify the balance sheet for each of the 291 filings. What you notice is that each network identifier is different, each network label is different. If you look further into the networks you see that "Statement [Table]" is often used to identify the balance sheet; but "Statement [Table]" also identifies the income statement, cash flow statement, statement of changes in equity, as well as many other things. Or, filers don't model the balance sheet in the form of a [Table] at all. So, how do you find the balance sheet for a filing? Well, what I did was map a disclosure object name "BalanceSheet" (see #1 on this list) to each of the networks which contained the balance sheet. You can see that here. Doing that made it possible for me to compare the model structures of the balance sheet for each of the 291 filings which you can see here. (Or you can compare them using this web page also.)
- Verification summary by generator and by auditor: XBRL Cloud gets the name of the software used to generate SEC XBRL financial filings. I can grab that from the XBRL Cloud Edgar Dashboard RSS feed. I entered the name of the auditor for the 291 filings in my test set. This dashboard allows you to compare the results of entities submitting SEC XBRL financial reports, similar to the XBRL Cloud EDGAR dashboard, but focused more on financial reporting semantics. The XBRL Cloud Edgar Dashboard allows you to filter by reporting entity. I let you filter by generator and by auditor. For example, here are all the PWC filings in my set of 291. And here are all the filings where the WebFilings software was used. (As a side note, notice how many of the 291 filings pass all the verification tests which I established, that is actual data. Basically, 98% of all SEC filers pass all of these tests. I will run the complete set of tests against all 8000 filings in February or March of 2013 when all the year-end 10-Ks have been filed.)
There is a lot more that you can fiddle around with. Notice all the places where metadata is used to help you filter, find, organize, slice, dice, or otherwise work with this test set of 291 SEC XBRL financial filings. It is even more useful when working with the complete set of SEC filings.