In my last email update I shared that we had some temporary databases available on the platform that contain all of the data from the tables that had iXBRL tags. These are flagged as temporary because we have not finished deciding exactly what to include. It seemed like an easy win when we started but we didn’t know what we didn’t know.
In our first pass we naively assumed that if there was a table with an element that had an iXBRL tag, everything of interest would be tagged and so we could safely focus our work on parsing based on the tags. We discovered that was not the case. In other words, there are plenty of tables where some visible data is not tagged. Once that was confirmed we had to refocus our parsing to then capture all data in the tables, tagged or not. Once we did that we discovered another phenomena – some tables in SEC filing have data that is not visible. This is interesting, Manish Pokhrel manages all of our data collection processes. He sent me a file after he did some digging to develop some estimates of the frequency and also the importance of this issue. Out of the 10-K’s filed so far in 2024 approximately 7.5% have one or more tables that contain data/content that is not visible when the filing is reviewed in a browser. Here is an example – the following screenshot is of the balance sheet that was pulled from this filing. The red box sets off the area of interest.
The underlying html has a row element the follows the Convertible note payable that is not visible. The tr element has a style attribute display with a value of none. Thus, the row is not visible. Manish wrote code to find these and added yellow highlighting to the rows after removing the display attribute. Here is an image of the table after extracting and processing (as viewed with our SmartBrowser).
The difference in this case is that the label in the visible row is more descriptive than the label in the hidden row. But that is not always the case, Manish highlighted cases where the hidden row label is more descriptive than the visible row label.
What is potentially unnerving is when the hidden row adds data that is not visible in the underlying html. An example of that can be found in Blink Charging’s recent 10-K (Search for 19,186 in this filing). Here is the actual table in html form after I modified a row that was hidden in the original.
| December 31, 2023 | ||||||||||||||||
| Level 1 | Level 2 | Level 3 | Total | |||||||||||||
| Assets: | ||||||||||||||||
| Alternative fuel credits | $ | $ | $ | $ | ||||||||||||
| Total assets | $ | $ | $ | $ | ||||||||||||
| Liabilities: | ||||||||||||||||
| Option liability | $ | $ | $ | $ | ||||||||||||
| Contingent consideration | ||||||||||||||||
| Warrant liability | ||||||||||||||||
| Common stock liability | ||||||||||||||||
| Common stock consideration payable | ||||||||||||||||
| Total liabilities | $ | $ | $ | $ | ||||||||||||
| December 31, 2022 | ||||||||||||||||
| Level 1 | Level 2 | Level 3 | Total | |||||||||||||
| Assets: | ||||||||||||||||
| Alternative fuel credits | $ | $ | $ | $ | ||||||||||||
| Total assets | $ | $ | $ | $ | ||||||||||||
| Liabilities: | ||||||||||||||||
| Option liability | $ | $ | $ | $ | ||||||||||||
| Contingent consideration | ||||||||||||||||
| Warrant liability | ||||||||||||||||
| Total liabilities | $ | $ | $ | $ | ||||||||||||
You can actually highlight the row in yellow above and View Source the value 1,316 is an iXBRL element. In the filing the display attribute is set to none.
When we discovered this it meant that we had to run through the filings again and set additional tests to take into consideration the style attributes of the elements we find – without that test we would have included this row without any understanding that we need to proceed with caution.
We have noted significant variation in the values/labels displayed as we have tried various strategies in the past to make this data more available. This data is included in the filing in many places, one of which is in the FINANCAL_REPORT.xlsx file as well as the ‘r’ files. In this particular case the sheet in the xlsx file that contains this data has the hidden row and it is visible. Fortunately, because the entire table content was pasted into one cell in the xlsx file it would take significant effort to transform it into something useful – here is some content from sheet 34 of the xlsx file that contains this data. I highlighted in red the hidden data.
<row r="6"><c r="A6" s="4" t="inlineStr"><is><t>SUMMARY OF ASSETS AND LIABILITIES MEASURED AT FAIR VALUE RECURRING AND NONRECURRING BASIS</t></is></c><c r="B6" s="4" t="inlineStr"><is><t xml:space="preserve">Assets
and liabilities measured at fair value on a recurring basis are as follows: SUMMARY
OF ASSETS AND LIABILITIES MEASURED AT FAIR VALUE RECURRING AND NONRECURRING BASIS
December
31, 2023
Level
1 Level
2 Level
3 Total
Assets:
Alternative
fuel credits $ - $ 32 $ - $ 32
Total
assets $ - $ 32 $ - $ 32
Liabilities:
Option
liability $ 293 $ - $ - $ 293
Contingent
consideration - - 1,316 1,316
Warrant
liability - - 32 32
Common
stock liability 743 - - 743
Common stock consideration payable 18,118 - - 18,118
Total
liabilities $ 19,154 $ - $ 32 $ 19,186
December
31, 2022
Level
1 Level
2 Level
3 Total
Assets:
We have wondered about visible discrepancies when comparing original htm tables to tables from the rfiles and the xlsx this deep dive helps us better understand why these exist.
The ultimate question is what are we going to do about this? We are still talking about it internally. The option we are leaning towards is to ignore the data when there is a display attribute with a value of none. Another option that we are considering is collecting this data and adding another field to the database to indicate that is was hidden. The first option adds less complexity but it does run the risk that there is data that was accidentally hidden that should be available.
These are the kinds of issues that slow us down significantly. I like to think that each time we finish wrestling with something like this we are better than we were. But it sure throws off our schedules. I often think of this Helmuth von Moltke was a Field Marshall and brilliant war strategist in the 19th Century. He first coined the term “no plan survives contact with the enemy”. He was absolutely right and his ideas are still used in war directEDGAR planning. (Note this was lifted from the Google page that displays the results of a search for “plans don’t survive first contact with the enemy”. I am not sure how to cite this since Google does not give any attribution to that snippet.





