Financial reporting
The XBRL viewer reads financial filings - an inline XBRL document, a plain instance or a report package - and shows the filing as its author laid it out, with every tagged figure lit up. Click a figure to see exactly what was reported: the concept, whose and for when, along which dimensions, in what unit, and how the text on the page became the value.
A fact table filters and searches every figure; the presentation outline arranges them by period, as the taxonomy orders them; the checks panel adds up the calculation relationships and shows any total that does not agree. The facts go out as xBRL-JSON or CSV. No taxonomy is bundled: labels, the outline and the checks come from the taxonomy in the package, or from one you supply.
Try it with your own filings in confidence: they are opened by your browser, on your device. Nothing is uploaded, no copy reaches us or anyone else, and nothing is kept once you close this tab.
Annual accounts, figure by figure
A made-up company's inline accounts with its own made-up taxonomy - no real filing, taxonomy or company. Click a highlighted figure to inspect it. One total is out by a thousand pounds: the checks find it.
// Node 18 or later, from the Gold package: check a report package's sums before it is filed, and keep its facts.
import { readFileSync, writeFileSync } from 'node:fs';
import { readReport, checkCalculations, toCsv } from './dist/node/bmx-xbrl-viewer.mjs';
const report = await readReport(readFileSync('accounts.zip'));
const { checks } = checkCalculations(report);
for (const check of checks.filter(c => !c.consistent)) {
console.log(`${check.total.label}: reported ${check.reported}, adds up to ${check.computed}`);
}
writeFileSync('facts.csv', toCsv(report));
process.exitCode = checks.every(c => c.consistent) ? 0 : 1;
Two quarters, by region
A plain XBRL instance - figures with no document around them - for two quarters of the same made-up company, with this quarter's revenue also split by region along a dimension. The outline lays the quarters side by side; every sum agrees.