← Back to archive

Repo of the Day

Arelle/ixbrl-viewer

Published: Sep 3, 2025

Open repository ↗

The Arelle iXBRL Viewer allows Inline XBRL (or iXBRL) reports to be viewed interactively in a web browser. The viewer allows users to access the tagged XBRL data embedded in an iXBRL report.

Summary

The Arelle iXBRL Viewer turns Inline XBRL (iXBRL) reports into interactive documents that can be opened in a browser to inspect the tagged XBRL facts. It is a two-part project: an Arelle plugin that prepares iXBRL files with a JSON data block plus a link to the viewer, and a single JavaScript file, ixbrlviewer.js, that renders the UI. The README lists the project as Apache License 2.0, though the repository metadata shows NOASSERTION.

What it is useful for

  • Reviewing iXBRL filings directly in a browser, including iXBRL document sets loaded as multiple tabs in one viewer.
  • Searching tagged facts by taxonomy labels and references, viewing full fact details, and exporting tables to Excel.
  • Visualizing calculation relationships and producing on-the-fly graphs from XBRL data.
  • Working with very large or partially tagged reports: the "stub viewer" mode keeps the iXBRL file unchanged and emits a small HTML shell with the JSON block, while Review Mode highlights untagged numbers and dates for cleanup work.
  • Producing a self-contained, standalone HTML file that does not need online taxonomy access, since the JSON is embedded in the document.

How engineers can use it

  1. Install Arelle separately and clone the repository (the Python portion targets Python 3.14). Load the plugin by pointing Arelle's plugin manager at iXBRLViewerPlugin/__init__.py, or run the CLI documented in the README:
    python3 Arelle/arelleCmdLine.py --plugins=<path to iXBRLViewerPlugin> -f ixbrl-report.html --save-viewer ixbrl-report-viewer.html --viewer-url https://cdn.jsdelivr.net/npm/ixbrl-viewer@<version>/iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js
    
  2. Choose a viewer URL: the jsDelivr CDN, a file from a GitHub release asset, or a locally built ixbrlviewer.js.
  3. To build the JS locally, run npm install, then npm run font, then npm run prod from the repository root; output lands in iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js.
  4. Open the prepared file in Chrome. The README flags a documented limitation: stub-viewer output and document sets cannot be loaded from file:// URLs due to browser security restrictions, so serve them over HTTP.
  5. Toggle features at generation (--viewer-feature-review) or at runtime (?review=true); drop an ixbrlviewer.config.json next to ixbrlviewer.js to set feature defaults, skin, or taxonomy name mappings. The JSON metadata format is versioned: the JS viewer must share the major version, and same-or-later minor version, of the plugin that produced it.