SEC XBRL Data Notes
What we learned building a reconciler over every SEC filing: the parts that surprised us, written down while they were still surprising.
These are working notes rather than articles: each one starts from something that broke while we were building BalanceProof and works out why. Most of them are about XBRL, because XBRL is where the surprises are. A filing can report the same figure twenty-three times, all of them correct, and hand you the wrong one without raising anything.
The recurring theme is that bad financial data almost never looks bad. It arrives as a plausible number from a real filing, which is why every note here ends in a check you can run yourself rather than a claim you have to take. Where there is code, it is the code this site actually runs. Where there is a figure, it is counted live or it is not published: the methodology page shows what is checked and what is currently failing.
-
The Largest US Banks by Total Assets, Read From Their Own SEC Filings
JPMorgan reports $5.02 trillion of assets, $1.5 trillion more than the next bank. The table for eleven large US bank holding companies, what it measures, and why it differs from the Federal Reserve's list.
-
How Much of What It Owns Does a Company Own Outright? 15 Balance Sheets Compared
Nvidia owns 71% of its assets outright. Colgate-Palmolive owns 3%. Fifteen balance sheets ranked by one ratio, and the three different reasons a company ends up near the bottom.
-
Hyperscaler Balance Sheets: What a Balance Check Does and Doesn't Show
The IMF says hyperscalers are borrowing more. We ran a balance check on four AI spenders' last filed balance sheets, and write down what that check can and cannot tell you about borrowing.
-
995 of 38,568 SEC Filings Failed Our Balance Sheet Check
A frozen October 2026 copy of our database, charted by year, sector and size, with 20 of the failures read against the filings on EDGAR. In all 20 the filing balances on its own figures.
-
Balance Sheets for Every SEC Filer: Frames API, Financial Statement Data Sets or companyfacts.zip?
The SEC publishes no file of every company's balance sheet. It publishes three things you can build one from. We pulled them and tested the result: which value each gives you, and how often the raw tags satisfy Assets = Liabilities + Equity.
-
SEC companyfacts: Why fy == 2024 Returns the Wrong Balance Sheet, and What to Filter On
Filter companyfacts on fy and fp and you get the wrong year, or two years. What the fields label, what frame points at, and a short, tested rule for one annual balance sheet value per fiscal year.
-
Point-in-Time Fundamentals from SEC EDGAR: Five Ways a Backtest Sees the Future
A backtest on fundamentals is only honest if every figure is the one that was public that day. Five ways EDGAR data breaks that, each with a real filing, and how to query around them.
-
The SEC Submissions API: What It Returns, and What It Cannot Reconcile
Submissions is an index of documents and company facts is a bag of numbers. Reconciling a balance sheet needs both, joined on the period and kept inside one accession number.
-
Total Liabilities from SEC EDGAR: Why the Obvious Tag Is Often Empty
Ask EDGAR for us-gaap:Liabilities and a large share of filers return nothing, Coca-Cola and Amazon among them. The tag is not missing data: it is a subtotal those companies never printed.
-
The Five Ways a Balance Sheet Fails the Identity Check
Once a reconciler runs over every filing the failures stop looking random. Five mechanisms account for nearly all of them, two are passes wearing a failure's clothes, and one of the five has never once turned up in this dataset.
-
What We Got Wrong About SEC Filings
A reload script that deleted before downloading, an SEC rate limit, and an empty database with a zero exit code. Why financial data failures do not announce themselves, and the fetch-then-replace pattern that fixed it.
-
How to Build a Scalable SEC EDGAR Pipeline Under the 10 RPS Limit
Three IP bans, and none of them were going too fast. The User-Agent rule, why time.sleep(0.1) stops working the moment you add a second worker, and the bulk loads that make the rate limiter almost irrelevant.
-
Why Your SEC Filing Data Is Wrong (And How to Check)
The consolidated figure in an XBRL filing is the one with no dimensions attached, so the right answer is defined by an absence. A five minute test you can run against your own data to find out which one you have.
-
Why Naive XBRL Extraction Breaks Balance Sheets (And How a Balance Check Catches It)
JPMorgan tags Total Assets 23 times in one filing and exactly one of them is the bank. This is how a parser picks the wrong one without ever raising an error, and what the accounting identity does about it.
-
Why Bank Balance Sheets Are Different
A bank runs on roughly ten cents of equity per dollar of assets, where a software company might run on sixty. Why that is the business rather than a warning sign, and what it looks like drawn at true proportion.
-
What Is the Accounting Identity? Meaning and Example
Assets = Liabilities + Equity is not a guideline, it is what makes the document a balance sheet. That makes it a test you can run against data you did not produce, including on companies with negative equity.