I unofficially declare that using the information from the income statement of SEC XBRL financial filings maddening.
While it is true that I am not a professional programmer, in fact I am not very good and have been referred to as a "dinker"; I do understand some of the things which are helpful in using information and things which get in the way of using information.
Now, the balance sheet and cash flow statement are a cake walk. The reason is that there are totals and subtotals which you can use to check to be sure you are grabbing the right information on both the balance sheet and cash flow statement. The structure of balance sheets and cash flow statements between filings is very consistent. You can calculate or impute information and there is generally something to check what you impute against to be sure you are getting things right.
There is little of these types of things when it comes to the income statement. What is more there are other things which just get in the way. For example, I thought I was getting Net Income (Loss) correct because I was at least finding the numbers in the filing. But what I realized is that there is duplication of concepts in the SEC XBRL financial filings. Duplicate values for Net Income (Loss) exist if the filer has a noncontorlling interest. Seeing as 21% of all filers have a noncontrolling interest, I cannot be sure I am grabbing the correct Net Income (Loss) concept. There is a big difference between getting some number and getting the right number.
It seems as though the details are there. If the roll up of the income statement is correct and if the detail is there (it matches the HTML so it likely is), then you can get to the pieces you want. But as far as I can see, this could be a task which needs to be done for each and every SEC filing to make comparisons work well and to be able to provide, say, an aggregate value for revenues, net income (loss) or other such reported facts across all SEC XBRL financial filings or some subset of filings.
The good news is that it does look like it is quite possible to use this information.