Catalog / Document Intelligence / DOC-012

Financial statement & annual report analysis (spreading)

Read annual reports, balance sheets and P&Ls (PDF, scan, XBRL) and 'spread' them into a standardised chart of accounts with ratios and sourced answers for credit analysts, investors, auditors and finance teams.

Credit analysts, auditors and investors spend hours transferring numbers from heterogeneous PDF financial statements into a standard template ("spreading") and then calculating ratios. AI document parsing plus LLM mapping reads the statements, assigns every line to the right standard account, checks that totals reconcile and links each figure to its source page. The analyst reviews exceptions instead of typing, and can ask questions of a 300-page report with citations.

Problem & value

  • Today: banks, leasing firms, credit insurers and rating/advisory teams receive statements of SMB borrowers (HGB/IFRS, often scanned or PDF from a tax adviser) and manually re-key them into a spreading tool or Excel. Equity analysts and auditors do the same for listed companies. Mapping of differently labelled line items ("sonstige betriebliche Erträge", "Rückstellungen") is the slow, error-prone step.
  • AI value: faster first draft of the spread, consistent mapping across analysts, built-in arithmetic checks, traceability to the page, and natural-language questions over long reports.
  • Evidence on limits: the FinanceBench study found that GPT-4-Turbo with a retrieval system incorrectly answered or refused 81% of questions on public company filings [1] — a 2023 result with early models, but it shows why plain RAG on filings is not enough and why structured extraction plus verification is the design norm. Vendor-reported time savings exist but are not independently verified; measure your own baseline.
  • Data advantage: for listed EU issuers, annual financial reports are published in ESEF (XHTML with Inline XBRL tags for IFRS consolidated statements; notes block-tagged since 2022) [2], and the SEC publishes XBRL-derived Financial Statement Data Sets quarterly [3]. Where tags exist, parse them instead of using OCR; AI is needed for the long tail (SMB PDFs, notes, narrative).

Variants

  • Credit spreading (banks, Sparkassen/Volksbanken, leasing, factoring): SMB borrower statements into a bank template; feeds rating and credit memo. Closely related to DOC-017 (bank statements) and DOC-003.
  • Investor / equity research: extraction of KPIs and segment data from annual reports, earnings releases and transcripts; peer comparison tables.
  • Audit & controlling: tie-out of report numbers against the trial balance, disclosure checklists, roll-forward checks of notes.
  • Corporate/M&A: target financials in a data room (see DOC-011), normalising adjustments (EBITDA bridge).
  • Public sector: procurement suitability checks (financial standing of bidders), subsidy applicant reviews.
  • Private use: small investors summarising an annual report; sensible with a general chat assistant, no special tooling.
  • Multi-year / restatement handling: align comparatives and detect changed accounting policies.

How it works

  1. intake (PDF / scan / ESEF XHTML / Excel)
  2. format detection (iXBRL tagged?
  3. parse tags directly | PDF/scan
  4. layout + OCR)
  5. page classification (balance sheet, P&L, cash flow, notes, auditor's report)
  6. table extraction (multi-page tables, units "in TEUR", sign conventions, columns = years)
  7. line-item mapping to standard chart (rules + embeddings + LLM, with reasoning on ambiguous labels)
  8. validation (assets = liabilities + equity, subtotals, cross-statement checks, prior-year comparatives)
  9. ratio engine (deterministic code, not LLM) + commentary draft with citations
  10. analyst review screen (source page highlighted, low-confidence cells flagged)
  11. export to spreading / rating / core-banking system; audit log
  • Parsing: a layout-aware parser or VLM produces tables as structured data; multi-page tables and scanned statements remain the hardest step.
  • Mapping: a mapping memory per bank template (label → account) answers most lines deterministically; an LLM handles new labels and proposes a mapping with rationale.
  • Calculations stay in code. LLMs extract and explain; ratios and sums are computed deterministically.
  • Human-in-the-loop: the analyst signs off every spread; credit decisions are never automated by this step.

Data preparation

Financial statements arrive as PDFs from borrowers, scans, Bundesanzeiger or registry downloads, and increasingly as ESEF/iXBRL files. The target data lives in the bank's or adviser's chart of accounts, spreading templates (often Excel), and prior spreads in the credit system or file shares. Typical gaps: scanned statements, differing formats and presentation by company, several versions of the same period, no consistent account mapping, and spreads that exist only as analysts' spreadsheets.

Preparation steps: (1) fix the target template and chart of accounts and write down mapping rules (PREP-012, PREP-019); (2) gather verified past spreads as gold-standard examples and as the test set (PREP-016, PREP-018); (3) restructure the Excel templates into tidy tables (PREP-011); (4) OCR scans and prefer XBRL where available (PREP-006); (5) export prior-period data from the credit system (PREP-005); (6) clarify the purpose and legal basis for reusing borrower data (PREP-025). Related: DOC-014, DATA-003.

Rough share: 25 to 35 percent of effort, dominated by template definition and collecting verified examples.

Implementation paths

Which path for whom

  • SMB: Path B, because spreading platforms are priced for banks, so a small adviser or finance team gets more from a light pipeline of document parsing, a cloud LLM and an Excel template.
  • Enterprise: Path B, because the spreads must feed the bank's own template, rating tools and credit workflow; Path A fits only where a platform is already licensed.
  • Developer: Path B, because parsing plus an LLM with provenance checks is quick to build, and ESEF/iXBRL files can be read without OCR.
  • Public: Path C on sovereign EU cloud, because public lenders and agencies face procurement rules and handle sensitive borrower data.

Path A — Buy (fits where a spreading platform is already licensed)

  • Spreading and credit-analysis platforms: Moody's (CreditLens / financial-spreading tools), S&P Capital IQ Pro, nCino and Finastra credit suites; document-AI specialists such as Rossum, Hypatos, ABBYY, Klippa (NL), Docugami. EU/German options: Hypatos (DE), Klippa (NL), and the banking IT providers Finanz Informatik (Sparkassen) and Atruvia (Volks- and Raiffeisenbanken), whose credit-process offerings should be checked first. Product names and AI features change quickly and were not individually verified here; confirm with the vendor.
  • Investor side: FactSet, LSEG Workspace, Bloomberg, AlphaSense offer AI-assisted filing analysis (US-hosted; check data residency).
  • Choose A when: you need a certified, supported workflow with rating-system integration and little engineering capacity.

Path B — Build on cloud APIs

  • Parsing: Azure AI Document Intelligence layout model (tables, markdown output, EU regions available) [4], Google Document AI (EU location), AWS Textract (Frankfurt), Mistral OCR (EU provider).
  • Extraction/mapping: frontier multimodal models (Claude, Gemini, GPT, Mistral) with JSON-schema structured outputs; reasoning models for mapping ambiguous lines and for cross-checking notes. Prefer EU-region endpoints (Azure OpenAI EU data zone, Vertex AI EU, Bedrock Frankfurt, Mistral La Plateforme) and a DPA.
  • Orchestration: n8n / Power Automate / custom Python; Arelle for XBRL/ESEF validation and parsing [5].
  • Choose B when: you have a bespoke template, want fast iteration and no on-prem mandate.

Path C — Self-host (open source)

  • Parsing: Docling (MIT licence, table-structure recognition, layout, reading order) [6], PaddleOCR / PaddleOCR-VL, MinerU, Marker.
  • Models: open-weight VLMs/LLMs such as Qwen-VL and Qwen3 family, Mistral and Llama-family models, Gemma, served via vLLM; embeddings such as BGE-M3 or multilingual-e5, reranker bge-reranker; Postgres/pgvector or Qdrant.
  • XBRL: Arelle (Apache 2.0) for iXBRL/ESEF parsing and ESEF Reporting Manual validation [5].
  • Hardware: HW3 (one 48-96 GB GPU) for ~30-70B models handling reasoning over notes; HW2 is enough for extraction-only with a small VLM. Banks often need this path because borrower data may not leave the institution.

Path D — Custom training

Worth it for banks with large archives of statements and their human-verified spreads (thousands of statements): fine-tune a mapping classifier (label to template account) or a small VLM for table reading. Verified spreads from past analyst work are ready-made training data. For most others prompting plus a mapping memory is sufficient.

State of the art (2026)

  • Tagged data first: ESEF/iXBRL for listed EU issuers and SEC XBRL are machine-readable, so extraction is largely solved there [2][3]; the SEC itself notes it does not guarantee data accuracy and recommends reviewing full filings [3]. ESMA has proposed extending ESEF to ESRS sustainability reporting (see DATA-012) [2].
  • Unstructured SMB statements remain the real use case: parser quality has improved markedly with VLM-based document models, yet multi-page tables, nested sub-totals, mixed units and scanned statements still cause errors. Reported benchmark scores on general document parsing do not transfer directly to financial tables; test on your own documents.
  • Benchmarks: FinanceBench (150 annotated questions on SEC filings) exposed weak retrieval-only systems [1]; newer long-context and reasoning models perform far better, but no benchmark replaces a field-level accuracy test on your template.
  • Techniques that work: page-type classification before extraction; table-to-structure with accounting-identity checks as automatic verifiers; hybrid mapping (rules + embeddings + LLM); deterministic ratio code; citations to page and cell.
  • Failure modes: unit/scale errors (EUR vs TEUR), sign flips, column mix-ups between years, hallucinated values when tables are cropped, ignoring restatements and "going concern" language in notes.

Shared resources & combinations

  • Same stack (ocr-docparse + vlm + llm-general): DOC-014 (PDF/table parsing for RAG), DOC-001 invoices, DOC-003 loan forms, DOC-017 bank statements and payslips; one GPU server and one parsing service can serve all.
  • RAG layer (embedding-text, vector-db, reranker): shared with DOC-011 due diligence and other long-document Q&A.
  • Downstream/upstream: ANOM-017 (tampering and synthetic-document detection before spreading), DATA-012 (CSRD/ESRS data), LANG-037 (investor ESG analytics), AGENT-006 (close and reconciliation, with the controlling view of own statements); tabular-ml for default-risk scoring sits after the spread.
  • Workflow engine (n8n/Camunda) and audit-log store shared with other back-office use cases.

Effort, cost & KPIs

  • Path A: weeks to a few months (integration into rating/loan system and data-protection review).
  • Path B: 2-4 months for a production pipeline incl. template mapping and review UI; API cost per statement is small relative to analyst time.
  • Path C: 3-6 months; GPU server (HW3) plus operations and model-update effort.
  • Path D: adds 2-3 months for data preparation and evaluation.
  • KPIs: field-level accuracy against analyst-verified spreads, share of statements with zero corrections, analyst minutes per spread, mapping-memory hit rate, number of caught arithmetic inconsistencies, turnaround time to credit decision.

People & change

Involve the head of credit or finance as process owner, the analysts who spread statements daily (they define mapping rules and judge quality), IT for the credit system and data exports, data owners of the template and prior spreads, the DPO, and management for scope. Customers are indirectly affected through credit decisions, so decide which output is shown to them.

Works council: depends. Spreading does not evaluate employees, but output tracking per analyst (volume, correction rates) can make the system suited to monitor performance under §87(1) no. 6 BetrVG, and §90(1) no. 3 requires early information; banks usually have a council, so inform it before the pilot. Data protection: statements of sole traders and small partnerships contain personal data, so run an AVV (Art. 28 GDPR) and consider a DPIA. If outputs feed creditworthiness decisions on natural persons, the system can be high-risk under Annex III of the AI Act, with duties from 2 Dec 2027.

AI literacy: support analysts with training on spotting extraction errors, e.g. unit and sign mistakes (Art. 4 AI Act). Pilot with 3 analysts on a closed set of past borrowers and compare with their spreads. Concern: de-skilling and credit risk; answer with mandatory analyst sign-off and cell-level provenance. See GUIDE-009, GUIDE-014, GUIDE-008.

Risks, regulation & compliance

  • EU AI Act: spreading of corporate statements itself is a decision-support tool and typically not high-risk. Annex III point 5(b) covers AI systems used to evaluate the creditworthiness of natural persons or establish their credit score (fraud detection excepted) [7]. The classification therefore depends: spreading for corporate borrowers is usually outside it, but if the output feeds a creditworthiness or scoring decision on sole traders or private individuals, the high-risk obligations (risk management, data governance, logging, human oversight) apply. Not legal advice; assess per deployment.
  • Banking supervision: EBA Guidelines on loan origination and monitoring require sound creditworthiness assessment (applicable since 30 June 2021) [8]; DORA (ICT third-party risk) and BaFin's MaRisk (BAIT was superseded by DORA in 2025) requirements apply to outsourced AI services; keep model-risk management (validation, documentation, overrides) in place.
  • GDPR: statements of sole traders, partnerships and small GmbHs with managing-director data contain personal data; DPA with vendors, EU hosting, purpose limitation, Art. 22 for automated individual decisions.
  • Accuracy and liability: never publish or rely on AI-spread numbers without review; keep audit trail of AI suggestion vs. final value.
  • Mitigations: accounting-identity checks, mandatory analyst sign-off, ESEF/XBRL as source of truth where available, golden-set regression tests on every model change.

Getting started

  1. Collect 50-100 historical statements and the analyst-verified spreads (include scans and bad PDFs) as a golden set.
  2. Check which sources are tagged (ESEF/iXBRL) and route those to Arelle; send only the rest to document AI.
  3. Test 2-3 parsers (Docling or Azure Layout, plus a VLM) on the golden set; measure field-level accuracy and unit/sign errors.
  4. Build the mapping memory and deterministic validations (balance check, subtotals) before adding LLM commentary.
  5. Pilot with a few analysts in a review UI showing the source page; track corrections and decide on Path A/B/C scale-up.

Sources

  1. FinanceBench: A New Benchmark for Financial Question Answering (Islam et al., 2023) — https://arxiv.org/abs/2311.11944
  2. ESMA — European Single Electronic Format (ESEF) — https://www.esma.europa.eu/policy-activities/corporate-disclosure/european-single-electronic-format
  3. SEC — Financial Statement Data Sets — https://www.sec.gov/data-research/sec-markets-data/financial-statement-data-sets
  4. Microsoft — Azure AI Document Intelligence layout model — https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/prebuilt/layout
  5. Arelle open-source XBRL platform — https://github.com/Arelle/Arelle
  6. Docling project — https://github.com/docling-project/docling
  7. EU AI Act, Annex III (high-risk systems), point 5 — https://artificialintelligenceact.eu/annex/3/
  8. EBA — Guidelines on loan origination and monitoring — https://www.eba.europa.eu/activities/single-rulebook/regulatory-activities/credit-risk/guidelines-loan-origination-and-monitoring