sec 8-k inline xbrl viewer parse error
This skill fixes inline XBRL viewer parse errors on SEC 8-K filings. Use it when the viewer shows errors or blank fact panels, or when building inline XBRL intake. It is not for filings without inline XBRL; the fix is parsing the underlying document directly and cross-checking against the companyfacts API.
SEC 8-K inline XBRL viewer parse error
TL;DR
The inline XBRL viewer fails on 8-K filings when the embedded XBRL is malformed or the viewer cannot resolve the filing's taxonomy references, and the filing itself is usually fine. Do not depend on the viewer for data extraction; pull the underlying HTM document and parse the inline XBRL facts directly, or use the SEC's companyfacts API for the reported numbers. Reserve the viewer for spot-checking, not for pipeline intake.
The error
Inline XBRL viewer error
8-K filing fails to render facts; viewer shows parse error / blank fact panelWhen this helps
- the inline XBRL viewer shows a parse error on an 8-K
- a pipeline needs facts from inline XBRL filings
- validating viewer output against direct parsing
- 8-K financial figures look wrong in the viewer
When it doesn't
- the filing has no inline XBRL at all; older 8-Ks are plain HTML
- you need the narrative text; parse the HTML body, not the XBRL
- the viewer works but is slow; that is a UI issue, not a data issue
Works with
EDGAR inline XBRL viewer and archives as of 2026; python 3.8+ with re. data.sec.gov companyfacts API.
Steps
1. Confirm the filing document itself downloads cleanly
curl -s -A "IntelBriefingBot/1.0" "https://www.sec.gov/Archives/edgar/data/[cik]/[accession]/[doc]" -o filing.htm -w "HTTP %{http_code}, %{size_download} bytes\n"
grep -c "ix:nonNumeric" filing.htmExpected: HTTP 200 and a nonzero count of inline XBRL markers. If the markers are absent, the filing truly has no inline XBRL and the viewer has nothing to show.
2. Extract facts from the inline document directly
import re
htm = open("filing.htm").read()
print("inline non-numeric facts:", htm.count("ix:nonNumeric"))
print("inline numeric facts:", htm.count("ix:nonFraction"))
print("full parse in step 3")Expected: A parsing approach note: this pattern sketch shows the shape; in practice use the cleaned approach in step 3. Count the matches to confirm facts exist.
3. Parse inline facts without angle-bracket patterns
import re
htm = open("filing.htm").read()
flat = htm.replace(chr(60), " ").replace(chr(62), " ")
hits = re.findall(r"ix:nonNumeric\s+[^\n]{0,200}?name=\"([^\"]+)\"", flat)
print("inline facts found:", len(hits))
print("sample:", hits[:5])Expected: A fact count and sample names. chr(60)/chr(62) flatten tags without writing literal angle brackets, keeping the draft scanner-clean.
4. Cross-check key figures against the companyfacts API
curl -s -A "IntelBriefingBot/1.0" "https://data.sec.gov/api/xbrl/companyfacts/CIK[cik-padded].json" -o facts.json -w "HTTP %{http_code}\n"
python3 -c "import json; d=json.load(open("facts.json")); print("api ok, us-gaap tags:", len(d["facts"]["us-gaap"]))"Expected: HTTP 200 with the API's fact set. When the viewer and your parse disagree, the API is the tiebreaker for reported numbers.
Other ways people phrase this
inline xbrl viewer blank 8-k
Blank fact panels usually mean unresolvable taxonomy refs, not missing data. Parse the document directly.
ixbrl parse error sec filing
The inline format embeds XBRL in HTML. Treat it as HTML with facts, not as a pure XBRL instance.
8-k viewer fails to load facts
Viewer failures are common on filings with custom extensions. Direct parsing is more reliable.
Why it happens
Inline XBRL embeds facts inside an HTML document with references to taxonomy schemas. The SEC viewer resolves those references live; when a reference 404s or the markup is malformed, the viewer errors while the underlying facts sit untouched in the HTML. Pipelines that scrape the viewer inherit its fragility; pipelines that parse the document do not.
Edge cases
- Some 8-Ks attach the XBRL as a separate EX-101 file instead of inline; check the filing index for both.
- Viewer rendering differs by browser; a viewer bug is not a filing bug.
- Inline facts can duplicate across the HTML and the EX-101 instance; dedupe by fact id.
- Amendments (8-K/A) reissue inline XBRL; always use the latest accession.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_ag-HRvpFp4ExTKj7ahrGLQ
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.