Financial data extraction: how to extract data from financial statements and annual reports

For credit analysts, underwriters and finance teams who get borrower or portfolio financials as PDFs: what to capture, why statements are hard to read, and how to automate the work.

A balance sheet with total assets of 22,075 selected and labeled "Total Assets" in an extraction panel

Key takeaways

  • Financial data extraction turns financial statements and annual reports from PDFs, scans or spreadsheets into structured, line-by-line data.
  • US public company numbers are already structured in the SEC's free EDGAR APIs. Private company statements, which arrive in every layout, are where extraction is needed.
  • Capture every line item, period column and unit, not just the totals, so lines can be mapped and ratios recalculated.
  • Check the statements' own math: assets equal liabilities plus equity, subtotals foot, and net income ties across the statements.
  • Extraction feeds spreading: mapping each borrower's lines to a standard template for ratio and covenant analysis.
On this page
  1. The financial statements and what to capture
  2. How to extract data from an annual report (10-K)
  3. Why financial statement extraction is hard
  4. Checks that catch extraction errors
  5. How to automate financial statement extraction
  6. The bottom line
  7. Frequently asked questions

Financial data extraction turns balance sheets, income statements, cash flow statements and annual reports into structured data: every line item, period and total, ready for spreading and ratio analysis. US public company numbers are already tagged and free through the SEC's EDGAR APIs. Private company statements arrive as PDFs and scans in every layout, and that's where extraction does the work.

Where do your statements come from?

For a public company's 10-k
Use EDGAR's free XBRL data, and extract only what the tags don't hold, such as MD&A.

The financial statements and what to capture#

StatementCoversKey lines to capture
Balance sheetPosition on one dateCash, receivables, inventory, fixed assets, total assets, payables, debt, total liabilities, equity
Income statement (P&L)Performance over a periodRevenue, cost of goods sold, gross profit, operating expenses, interest, taxes, net income
Cash flow statementCash in and out over a periodNet income, non-cash adjustments, working capital, cash from operations, investing and financing
Statement of changes in equityMovements in equityShare capital, retained earnings, dividends, reserves
NotesDetail behind the numbersDebt maturities, leases, related parties, contingencies

Capture more than the totals:

  • Every line item as labeled, so it can be mapped later.
  • Every period column, prior years included.
  • Units: "in thousands" in the header changes every number.
  • Quality level: audited, reviewed, compiled or company-prepared.

How to extract data from an annual report (10-K)#

A Form 10-K is the annual report a US public company files with the SEC within 60 to 90 days of its fiscal year-end. Its financial statements are tagged in XBRL, so take the numbers from the EDGAR APIs rather than the document. When a 10-K arrives as a PDF in a credit package, split it by Item and extract each statement with its periods and units intact. MD&A commentary isn't tagged, so read it from the document either way.

10-K itemWhat it holdsWhy an analyst reads it
Item 1: BusinessSegments and customersContext for the numbers
Item 1A: Risk factorsMaterial risks the company disclosesCredit and concentration risk
Item 7: MD&AManagement's view of results and liquidityWhy revenue, margins or cash moved
Item 7A: Market riskRate, currency and commodity exposureHow debt costs would move
Item 8: Financial statementsStatements, notes and auditor's reportThe figures, plus debt maturities and covenants in the notes

Why financial statement extraction is hard#

  • No standard layout

    Every accountant's format differs, and so do line names: "Sales", "Revenue", "Net revenues".
  • Several periods side by side

    Prior years, budget and variance columns share one table.
  • Hierarchy

    Sub-lines, subtotals and totals have to keep their structure.
  • Negative numbers

    Parentheses, minus signs or red ink.
  • Multi-page statements

    Headers repeat on some pages and vanish on others.
  • Scans and faxes

    Common from smaller borrowers.
  • Mixed packages

    A cover letter, three statements, the notes and a tax return in one PDF.

Checks that catch extraction errors#

Financial statements check themselves: a failed check means a misread value or a missing line, so the statement goes to a reviewer.

  • The balance sheet balancesTotal assets equal total liabilities plus equity.
  • Subtotals footEach subtotal equals the sum of its lines.
  • The income statement flowsRevenue minus cost of goods sold equals gross profit, and so on down to net income.
  • The statements tieNet income matches the cash flow statement, and ending cash matches the balance sheet.
  • Periods line upThe balance sheet date is the end of the P&L period.
  • Units are consistentThousands and dollars aren't mixed.

How to automate financial statement extraction#

Automated financial statement processing runs one pipeline on every package, from a single P&L to a 10-K PDF.

  • Financial statements
  • 10-K PDFs
  • Tax returns
Extraction
  1. 01Classify and split
  2. 02Extract lines and periods
  3. 03Validate the math
  4. 04Map to your template
Spreading template or credit system
From a borrower's PDF to a spread

Reuse analysts' past mappings, so "Cost of sales" lands in the same row for every borrower. Analysts see only failed checks and low-confidence values, each on its source page, and the data reaches your spreading tool or credit system by API or webhook. Borrower financials are confidential, so ask for SOC 2 Type 2 compliance.

Docsumo does the reading for financial spreading: every line comes out with its statement, period and year, and fields it's unsure about go to your reviewer. The spread itself and the credit decision stay in your tools and with your analysts.

  • 99%field-level accuracy on 250+ document types
  • <5 minper document, down from 2+ hours
  • 95%+of documents processed straight through, without manual review

The bottom line#

Pull public company data from EDGAR and extract private company statements: every line, period and unit, checked against the statements' own math and mapped to your template, so analysts review exceptions instead of retyping PDFs. For property loans, the equivalents are the T12 and rent roll.

Book a demo with a few of your own borrower statements, or start a free trial.

Frequently asked questions#

How do you extract data from financial statements?

A document AI tool classifies each statement, reads every line item and period column, and returns structured data. You then check the math, map the lines to your spreading template and export to Excel or your credit system.

How do you extract data from an annual report?

For a US public company, skip the PDF: the statements in its 10-K are tagged in XBRL and free as JSON through the SEC's EDGAR APIs. With only a PDF, split it by Item, extract the Item 8 statements with their periods and units, and read the notes and MD&A for the rest.

Can I extract financial statement data to Excel?

Yes. Most tools export to Excel or CSV, one row per line item and one column per period. For ongoing volume, send the data to your spreading or loan system by API.

What is the difference between extraction and financial spreading?

Extraction reads the numbers off the statement as they're labeled. Spreading maps those lines into a standard template, such as putting "Cost of sales" and "COGS" in the same row, so you can calculate ratios and compare borrowers. See spreading financial statements.

How accurate is automated financial statement extraction?

It depends on the tool and the documents, so measure it on your own borrower statements, scans included. Docsumo reports 99% field-level accuracy on 250+ document types.

Sources

  1. SEC: EDGAR application programming interfaces
  2. SEC: Form 10-K general instructions and items

First published . Last updated .

See Docsumo read your own documents

Bring a few real samples. We'll show the fields extracted, the checks that ran and what a reviewer would see.