New🔬 Community guide for IBM's open-source DoclingOCR — free document AI for everyone.
⭐ Star on GitHub
DoclingOCRv2026
SEC filings

10-K to Excel: Get the Numbers Out of the Filing

A 10-K is 150 to 400 pages of prose wrapped around a dozen tables that matter. The tables are dense, use borderless columns, and hide their units in a header printed once. Extracting them is a table-structure problem with high stakes — this is the data a model gets built on.

Skip the manual copy-paste

Convert one file free — see the table land in Excel

Free daily conversions · income statement, balance sheet, and cash flow tables.

Extract 10-K tables free

What makes 10-K extraction painful

Borderless, tightly spaced columns

Five years of figures sit in columns defined only by alignment. Normal text extraction interleaves them into nonsense.

Parenthetical signs

Accounting negatives appear as (2,300). Without sign handling, cash outflows become inflows in your model.

Units in a single header line

"In millions, except per share data" applies to the whole table. Lose it and you are off by six orders of magnitude.

Footnote markers in cells

Superscript (1), (2) attached to figures are parsed as part of the number — or as separate values.

Segment tables with merged headers

Two-level headers ("North America" spanning three sub-columns) collapse into one confusing row.

Page breaks mid-table

The balance sheet continues on the next page with the header repeated; naive conversion splits it into two half-tables.

Which tables to pull first

  • Consolidated statements of operations (income statement).
  • Consolidated balance sheets — current and prior year.
  • Consolidated statements of cash flows.
  • Segment and revenue-disaggregation tables, for anything with more than one business line.
  • Debt schedule and lease obligations, if you are modelling downside.

A minimal cross-check

Before you trust a converted filing, run three checks: total assets equal total liabilities plus equity in every period; net income on the cash flow statement matches the income statement; and the cash flow statement’s ending cash matches the balance sheet’s cash line.

If any of those fail, the problem is extraction, not the company. Finding it in five minutes beats discovering it after building a model on top.

Working with filings in practice

Download the PDF from the filing itself, not a re-typeset copy on a data vendor’s site — vendors sometimes normalize units and drop columns, which makes reconciliation against the original impossible.

Keep the accession number in the filename. When numbers are later restated, the only way to reconstruct what you used is to know exactly which filing it came from.

Frequently asked questions

Does this work on 10-Q filings too?+

Yes. 10-Qs use the same statement layouts in condensed form; the same table extraction applies.

Can it read tables that span multiple pages?+

Yes, page continuations are merged rather than returned as separate fragments. Check the join at the page boundary on the first filing you convert.

What about the notes to the financial statements?+

Narrative notes extract as text. The tabular parts — debt schedules, lease maturities — are handled by the same table pipeline.

Are the numbers scaled correctly?+

The units are preserved from the header; scaling is up to you. Always confirm whether the filing reports in thousands or millions before modelling.

Is there a free way to try it?+

Yes — free daily conversions, no account. That is usually enough to test one filing’s income statement before committing to a workflow.

Keep reading

Done reading? Convert a document and check the output yourself.

Extract 10-K tables free
Open source · Free to use · Community-driven

DoclingOCR — Open-Source Document Intelligence

Don't spend hours fighting with Python dependencies, PyTorch CUDA drivers, or downloading 4GB models. Use SheetParser — the dedicated online Web UI powered by Docling & TableFormer.

No Credit Card Required100% Free Daily CreditsInstant Browser Conversion