01The problem is not auditing: it is knowing what to audit
The universe covered runs to thousands of stocks across eight indices, plus crypto, ETFs and funds. Checking them one by one is not a plan, it is an intention: by the time you reach the end of the list, half of it has been republished.
So we inverted it. Fifteen checking rules run on the response being served, right before it goes into cache. Because the cache lasts a day, each stock is checked at most once every 24 hours — and only if somebody looks at it. What gets audited is exactly the figure a user has in front of them, which is where a bad number does damage. The cost is a few thousand subtractions on data already in memory.
A rule that fires on 40% of the universe informs nobody: it teaches people to ignore the report. So every finding carries a level — error when the table contradicts itself and an accounting identity is broken, warning when there is a possible explanation.
02What turned up
These figures were published and were being served as good:
- AWR · revenue: served $136.7M, actual $658.1M — which produced a 149% operating margin.
- Camden · revenue: served $13.0M, actual $1,573.5M — a 2,965% net margin.
- Bank of Hawaii · revenue: served $121.9M, actual $887.8M.
- AES · customers: served 11.0M, actual 1.68B — 150 times more.
- NVIDIA · cash: served $10.61B, actual $49.67B.
- ProFrac · 2023 total assets: served $1.34B, actual $3.07B.
- MGE Energy · revenue: served −$33.8M, actual $743.7M.
- AbbVie · days payable: served 696, actual 66.
- LifeMD · 2020 ROE: served +3,565%, actual blank — the company was losing money.
03Four faces of the same cause
Almost everything found was the same thing: a row assembled from pieces of different documents. Change the piece, change the symptom.
Two statements. ProFrac amended its annual report solely to add an exhibit: the parent-only balance sheet, unconsolidated. It was filed without the tag that says «this is parent-only», so the official registry publishes it as though it were the consolidated one, and it wins by being the most recent filing. The signature of that exhibit is that equity does not change: at 31 December 2023 total assets read 3,070.7 against 1,340.8 and liabilities 1,742.1 against 70.9, but equity is 1,211.2 in both.
Two generations. Fortive moved a division to discontinued operations and restated 2018 three years later. The restated gross margin was being served alongside the original revenue, because between two rival concepts the larger one won — and a restatement is usually smaller, so the correct figure lost every time.
Two periods. Zurn changed its fiscal year end and published two complete financial years inside 2019. Each concept resolved to its own: a March gross margin against December revenue, and the subtraction produced −$556.0M. The inverse case, Insteel: a quarterly report tagged as annual slipped the 31 December balance sheet through as if it were the 1 October year end.
Two identities. The same corporate group filing under two entities, with the figures of one landing in the row of the other.
04What it is worth, and what it is not
Running the rules over the served universe took the share of stocks with no findings from 63% to 83.6%. That is the honest number: it is not 100%, and a checking system that claimed 100% would be describing its own blind spots rather than the data.
What this does not do is make the underlying filing correct. The regulator publishes what the company files. What a checker can do is notice when two figures in the same row cannot both be true, and either fix the pairing or say «no data» — which is always better than serving a plausible number that is wrong.
Findings from the quality control run in September 2026 over the served universe. The rules run on the response about to be cached, so each stock is checked at most once a day and only when somebody actually looks at it.
This is information and analysis, not financial advice, and it contains no recommendation to buy or sell. See the disclaimer.