SEC filings failed our balance sheet check on
2026-10-09. In 971 of them a line item did not
reach us. Read the study
995 failed, of which
971 were missing_tag: a line item did not reach us.
37,573 passed.
Each dot is about 96 filings (2026-10-09 study).
6,252 companies covered. On 2026-10-29 (UTC), across the latest balance sheet of each: 5,837 could be tested, 5,643 reconcile and 194 are flagged with a reason.
SEC EDGAR · checked against A = L + E where the filing allows
Balance-checked SEC financials for production data pipelines.
Each statement is checked against assets = liabilities +
equity where the filing reports the lines needed, and returned with the
SEC filing it came from. When a statement can't be tested, the API
returns the reason instead of adjusting the numbers. When one does not
add up, the response says whether the gap is in the filing or in what
we read.
Other assetsincludes 1 line item this filer does not report separately
$228.7B29%
Liabilities and equity, line by line
Accounts payable
$42.6B5%
Long-term debt
$31.1B4%
Other liabilities
$235.2B30%
Shareholders' equity
$470.5B60%
The two columns agree. MICROSOFT CORP owns $779.4B, and every dollar of it is owed or owned.
Flagged, and here is whyAACB quarter ended 2026-06-30,
filed 2026-08-05
Artius II Acquisition Inc. owns$232M
Owed & owned$250M + -$17M
Other assets$232M
Other liabilities $17M
Not read from this filing$232M
Equity -$17M
Line by line
Assets, line by line
Other assetsincludes 6 line items this filer does not report separately
$232M100%
Liabilities and equity, line by line
Other liabilitiesincludes 2 line items this filer does not report separately
$17M7%
Shareholders' equity
-$17M7%
Not read from this filingThis filer's own stated total for liabilities plus equity equals their total assets, so the filing balances against its own arithmetic. This band is the part this page did not read. Whether that line is tagged under a name this site does not map, tagged only with a dimension, or not tagged in the filing's XBRL cannot be told from the figures held here.
$232M100%
Artius II Acquisition Inc.: the filer's own stated total balances. $232M of it did not reach us, so the drawing shows the gap instead of hiding it.
Not testableanswered not_testable, with the reason
Ownsno figure drawn
Owed & ownedno figure drawn
What the check needs
01Total assetsreported, and above zero
02Liabilities and equityeach reported, or the filer's own stated total
not_testable if either is missing: no verdict,
the reason in the response, counted in neither total.
Nothing is filled in and no total is estimated.
On 2026-10-29 (UTC), 415 latest balance sheets could not be tested. They are counted in neither the pass nor the fail total.
Built for quants, developers and AI-finance teams.
For anyone who needs to know when a number can't be trusted.
01
AI-finance and agent builders
An agent can check a balance sheet before it answers: check_balance_sheet returns the verdict and the reason.
ticker"AACB"
balancesfalse
identity_status"missing_tag"
imbalance_pct99.93
filer_totals_agreetrue
Real response, captured 2026-10-19: check_balance_sheet (MCP), AACB.
Excerpt; nothing edited.
02
Quant research and backtesting
Every line item carries its period end and the date of the filing that first reported it; as_of (Pro) returns what was public on a date.
ticker"AAPL"
total_assets.value383266000000.0
total_assets.period_end"2026-06-27"
total_assets.filing_date"2026-07-31"
Real response, captured 2026-10-19: GET /api/demo/AAPL.
Excerpt; nothing edited.
03
Fintech and reporting tools
Show a figure next to the filing it came from and whether the sheet balances, without writing the parsing or the reconciliation.
ticker"AAPL"
total_assets383266000000
total_liabilities275746000000
total_equity107520000000
balancestrue
identity_basis"as_filed"
Real response, captured 2026-10-19: check_balance_sheet (MCP), AAPL.
Excerpt; nothing edited.
03 The cost of a wrong number
Why SEC data breaks pipelines.
A balance sheet that does not add up still loads without an error.
0123
One figure, many facts
JPMorgan reports total assets twenty-three times in one filing. One of them is the company.
02Revised
Figures change after filing
A later 10-K or 10-Q can report a new value for the same period. The last 90 days.
04 Method
How the check works
Each filing is checked against Assets = Liabilities + Equity when it reports the lines needed; where it does not, it is marked not testable instead of passing. When a filing does not balance, the page says so with the reason instead of adjusting the numbers.
Figures come from the SEC Financial Statement Data Sets and the XBRL frames API, as filed, each with its filing date. A filing repeats a figure by segment and entity; only the company-level fact is kept (JPMorgan reports total assets twenty-three times in one filing).
JPM
quarter ended 2026-06-30, filed 2026-08-06
Owns
Deposits with banks$285.1B
Investment securities$536.0B
Loans$1.52T
Goodwill$52.7B
Other assets$2.62T
Owed & owned
Customer deposits$2.71T
Short-term borrowings$692.1B
Other liabilities$1.23T
Shareholders' equity$374.6B
02
How a filing is checked
5,837 companies’ latest balance sheets could be tested. A sheet is checked against assets = liabilities + equity where the filing reports the lines needed. No figure is adjusted to make a sheet fit.
JPM
quarter ended 2026-06-30, filed 2026-08-06
Owns $5.02T
Total assets
Owed & owned $4.64T + $374.6B
Customer deposits $2.71T
Short-term borrowings $692.1B
Other liabilities $1.23T
Equity $374.6B
A = L + E The two totals are the same height: the filing balances.
03
What a flag means
A reason, not an accusation: rounding, a line item that did not reach us, no stated total, or a filing that does not balance. Read on 2026-10-29 (UTC): 3 rounding, 182 a line item did not reach us, 9 no stated total to test against, 0 a filing that does not balance. Counts by reason.
AACB
quarter ended 2026-06-30, filed 2026-08-05
Owns $232M
Total assets
Owed & owned $250M + -$17M
Other liabilities $17M
Not read from this filing $232M
Equity -$17M
flagged: a line item did not reach us The filer's own stated total balances; the gap is what this dataset could not read.
04
What you get back
JSON with every line item, its period and its filing, over the API, the Python client or MCP. What the restated flag means is on the verification page.
check_balance_sheet · AAPL · real response,
captured from production 2026-10-19. Excerpt.
# No key needed for the demo endpoint
curl https://balanceproof.dev/api/demo/AAPL
# Your own key opens the full API
curl -H "X-API-Key: YOUR_KEY" https://balanceproof.dev/api/company/AAPL
Trimmed to 4 of the 26 line items, the
ones the check uses. The whole answer is
/api/demo/AAPL.
Request
# No key needed for the demo endpoint
curl.exe https://balanceproof.dev/api/demo/AAPL
# Your own key opens the full API
curl.exe -H "X-API-Key: YOUR_KEY" https://balanceproof.dev/api/company/AAPL
# Or PowerShell's own command, no curl.exe needed
Invoke-RestMethod -Uri https://balanceproof.dev/api/company/AAPL -Headers @{"X-API-Key"="YOUR_KEY"}
In Windows PowerShell, plain curl is an
alias for Invoke-WebRequest and will not take these
flags; curl.exe is the real curl that ships with Windows
10 and 11.
Request
import requests
r = requests.get("https://balanceproof.dev/api/demo/AAPL", timeout=30)
r.raise_for_status()
sheet = r.json()
print(sheet["company_name"], sheet["assets"]["total_assets"]["value"])
# With your key, the full API:
# requests.get("https://balanceproof.dev/api/company/AAPL",
# headers={"X-API-Key": "YOUR_KEY"}, timeout=30)
claude mcp add --transport http balanceproof https://balanceproof.dev/mcp
# Then ask: Does Apple Inc.'s latest balance sheet balance?
Response what the model is handed
Apple Inc. (AAPL) balances for the period ending 2026-06-27: assets equal liabilities plus equity within tolerance.
Total assets $383.27B ($383,266,000,000). Total liabilities $275.75B ($275,746,000,000). Shareholders' equity $107.52B ($107,520,000,000).
Not every component was reported: Goodwill
{
"ticker": "AAPL",
"period_end": "2026-06-27",
"balances": true,
"identity_basis": "as_filed",
"imbalance_pct": 0.0,
"total_assets": 383266000000.0,
"total_liabilities": 275746000000.0,
"total_equity": 107520000000.0
}
API calls a month: Free 1,000, Starter 5,000, Pro 10k, Business 50k.
Every plan side by side
Pro costs more per call than Starter because it is not only volume: it adds point-in-time figures for backtests, the 90-day feed of failed checks, and alerts on 50 companies.
At the limit: further calls are refused with
HTTP 429 until the 1st (UTC), or until you move to a larger plan. There
is no overage billing.
What this doesn't do. No predictions, no scores, no recommendations. Nothing estimated: where a company doesn't report something, the response says so rather than showing zero.
Where the figures come from. The SEC Financial Statement Data Sets and the SEC's XBRL frames API. Every value is as filed, with the date of the filing it came from.
Enterprise. Invoicing and a signed agreement, by email.
At the limit. Calls past the monthly quota are refused with HTTP 429 until the 1st (UTC). There is no overage billing. Cancelling and refunds are in the questions below; how keys are stored is on the security page.
No. A free key needs only an email address: no card and no password. It gives you 1,000 calls a month, and nothing is charged unless you choose a paid plan yourself.
Can I cancel any time?
Yes. Paid plans are Stripe subscriptions and you cancel them yourself, from Manage subscription in your dashboard, with no email needed. Pro, monthly or annual, also has a 14-day refund window. The dataset is a file, so it is not refundable once downloaded.
What counts as a call?
One request to a keyed endpoint (company, history, statements, changes or exceptions), one tool call through the MCP server, or one company inside a bulk check. Looking things up on the site, the live demo on this page and checking your own usage do not count.
What happens when I go over the limit?
Further calls are refused with HTTP 429 and a message that says how many you have used. The count resets on the 1st (UTC), or you can move to a larger plan from the dashboard at any time. There is no overage billing, so a busy month never becomes a surprise bill.
Data is for informational purposes only. Not financial advice.
Balance sheets that prove they balance.
Balance-checked SEC financials for production data pipelines.
Take a company where you know the answer, call it, and
compare the response with EDGAR. If the numbers you ship have to be right,
start here. Free tier: 1,000 calls a month, no card.