asp53826 / xbrl-normalize

Microsoft still files
a revenue tag from 2010.

SEC XBRL is standardised in the sense that everyone uses the same dictionary and nobody uses the same words. Take the first tag that exists and you get Microsoft's FY2026 revenue as 62.5B instead of 331.8B. This page walks the resolver, company by company.

25 tests 102 companies identity exact 96.1% 3 tags cover revenue 55 / 37 / 4 source

Watch the resolver work

Candidate tags are tried in order. A tag only answers if it has an observation for the period being asked about — existence is not enough, and that single rule is what stops a decade-old tag from replying.

resolved revenue
from tag
naive: first tag that exists
error if you took it

The identity only closes with mezzanine equity

Redeemable noncontrolling interests are contractually redeemable, so they are not permanent equity — but they are not a liability either. They sit between the two sections and are excluded from both totals. Toggle them and watch the balance sheet stop balancing.

liabilities mezzanine equity equity incl. NCI unexplained
total assets
liabilities + mezzanine + equity
residual

Figures are rounded to 0.1B for display, so residuals below about 0.05% are rounding rather than real gaps; the benchmark carries full precision. Adding mezzanine equity fixed five companies and immediately broke four others — the 31 filers whose liabilities are derived from the combined total already had it inside that residual, so counting it again double-counted. The derivation had to subtract it. Identity exact matches went 91.1% → 92.2% → 96.1%.

Coverage, and who drags it down

102 companies across banks, insurers, energy, retail, pharma, industrials, utilities and tech. A tech-only sample would flatter these badly.

Banks lose the income statement. Wells Fargo, Morgan Stanley, Goldman and Truist resolve no revenue at all — they present net interest income plus noninterest revenue and never tag a top-line total.

Current assets and liabilities sit at 79.4% for the same reason: banks and insurers do not present a classified balance sheet. That is a gap in the concept, not the mapping.

A revenue line for a bank would be an invention, so it is reported missing. Missing is never silently zero.

Total liabilities reaches 100% only because 31 of 102 filers do not tag it and it gets derived — the striped portion of that bar.