I have put together a prototype application for accessing SEC EDGAR information. I created this application for a number of reasons which will become apparent later, but the application is also quite helpful in seeing what is necessary to make such an application work and it demonstrates the potential of XBRL.
I cannot take full credit for this prototype. A number of years ago, the University of Kansas created a demonstration repository of XBRL based information. For that project we created a little "analysis" tool which extracted and used that XBRL based information. I modified that tool, making it work with the current SEC EDGAR XBRL data.
Remember that I am not a programmer and the prototype is more of a proof of concept than an application which would be useful for analysis. It does work though. But keep in mind the following limitations of this application:
- It only works with a list of 408 XBRL submissions to the SEC and is not updated for new submission.
- The application does not make use of an XBRL processor. An XBRL processor was used to pre-process a few things such as the XBRL taxonomies for each filer and the queries used to extract data.
- The application is not intended for analysis, it is intended to show what is needed in order to make an analysis application workable.
- The application is not a demo of the nifty features of Excel, it is a demo of extracting and using information on the Internet.
How to use the prototype
To use the prototype:
- Download the ZIP file.
- Open the ZIP file and then open the Excel spreadsheet.
- On the "Analysis" spreadsheet, click on the button in the upper left hand corner.
- Work through the form which comes up left-to-right. It is pretty easy and it is hard to do things out of order.
- Watch the Excel spreadsheet, that is where the information extracted is put.
- Think about what is making this application work and what you might need within your systems to make then work as you need them to work (meta data, taxonomies, etc).
If you know now to write Excel VBA (macros), you can go even further...modify the application. The application has a lot of good code examples which help you understand how to get at the information within an XML file or within an XBRL file without an XBRL processor. Reverse engineering is a great way to learn!
I would challenge you to make the appliation work better.
How the prototype works
The application uses a number of XML files to pull information together which is then viewed within the application. Here is a summary of these files:
- List of entities: First, you need some list of entities. The list of entities in this application comes from the XBRL Cloud feed of SEC filings. I read that list, grabbed the filings that I wanted to use, and publish my list of entities and related SEC filings here, which is the entity information used by this application. This is the XML file.
- List of industries: Because the number of entities is so large, it helps to categories the entities into smaller more manageable groups. This is done using SIC codes. Rather than having a human have to read the list like many publish this information; I republished the list of SIC codes in an XML file which I can read.
- List of queries: You want to be able to query the data in XBRL filings. I am using a standard form for providing the list of fact values to grab: XBRL. I simply create an XBRL presentation linkbase which contains the concepts I want to analyze and then read that taxonomy to get the information I want to analyze. Here is an XML file which contains the list of queries I created for the prototype. Here is one of the XML representations of the network relations. (Note that the XBRL taxonomy is pre-processed into an easier to query resolved set of relations.)
- XBRL instances: Of course, you want the filed information, that comes from the XBRL instances filed with the SEC. Here is one of those. The entity list above points to the filings of each SEC filer, that is how they are found within the SEC EDGAR system.
- Filer XBRL taxonomies: The filer XBRL taxonomies which you can see in the prototype are the filed taxonomies, pre-processed so they can be easily read by the Excel application without the use of an XBRL processor. You can see one of those here.
The Excel interface simply pulls all this information together. What the application can do is limited because it does not use an XBRL processor. Or rather, better said...an XBRL processor would make it far easier to make the Excel application do useful functions. But as you can imagine, none of this happens by magic. The application is driven by data provided to it. If the application has the data, such as the SIC codes to categorize entities into groups, the application can make use of that data to help the user.
Video of application
Here is a short video which shows the basics of using this Excel based application.