How to Verify Numbers from Financial PDFs
Financial AI

How Do You Verify Numerical Claims from Financial PDFs?

DocuShell TeamJuly 6, 202617 min read

Direct answer

To verify numerical claims from financial PDFs, treat every number as a typed, versioned fact. Confirm the exact filing or report, resolve the page and table cell, preserve the metric name, period, unit, currency, scale, sign, dimensions, and footnotes, then compare the value deterministically. If the AI generated a ratio, growth rate, subtotal, or forecast, verify the input facts and recompute the result in code.

Do not verify only that the digits appear somewhere in the PDF. 12.4 could mean $12.4 million in quarterly revenue, 12.4%, 12.4 thousand shares, or a note number. A valid financial evidence claim binds the value to its row, column, headers, source version, and accounting context.

When a public filing includes structured data, cross-check the PDF or inline filing with XBRL. The SEC’s official EDGAR APIs expose company facts by taxonomy concept and separate arrays by unit, illustrating why value, concept, period, and unit belong together.

Why financial PDF numbers fail in RAG

Financial reports compress meaning into layout. A cell inherits context from titles, row labels, column headers, units printed above the table, nearby footnotes, and accounting conventions.

Common failure modes include:

  • the model selects the 2024 column instead of 2025;
  • parentheses indicating a negative number disappear;
  • “in thousands” is ignored;
  • revenue is confused with net income;
  • quarterly and year-to-date values are mixed;
  • continuing operations are confused with consolidated totals;
  • a restated amount is replaced by an earlier filing;
  • a percentage is read as a currency value;
  • a footnote changes the definition or scope;
  • OCR shifts cells or drops decimal points;
  • the same number appears in multiple unrelated tables;
  • a derived percentage uses mismatched periods.

Vector similarity cannot resolve those errors reliably. Retrieval can find the right page while the generator associates the wrong label with the value.

The minimum financial fact schema

Before verification, normalize a claimed fact into explicit fields.

{
  "claim_id": "claim-q3-revenue",
  "source_id": "issuer-10q-2025-q3",
  "document_fingerprint": "sha256:expected-filing-digest",
  "concept": "Revenue",
  "value": "12400000",
  "displayed_value": "12.4",
  "currency": "USD",
  "unit": "USD",
  "scale": 1000000,
  "period_start": "2025-07-01",
  "period_end": "2025-09-30",
  "fiscal_period": "Q3",
  "page_index": 17,
  "page_label": "18",
  "table_id": "p17-table-2",
  "row_label": "Revenue",
  "column_label": "Three months ended September 30, 2025",
  "cell_id": "p17-t2-r4-c2",
  "footnote_refs": ["fn-3"]
}

The normalized value is useful for computation, while displayed_value supports visual reconciliation. The transformation between them must be explicit: 12.4 × 1,000,000 = 12,400,000.

Step 1: pin the exact financial source

Record the source before extracting a number:

  • issuer or entity identifier;
  • filing type or report category;
  • accession, filing, or document ID;
  • filed, issued, and period-end dates;
  • amendment or restatement status;
  • canonical URL or source-system reference;
  • content fingerprint;
  • parser and extraction-profile version.

A file name such as annual-report-2025.pdf is not enough. Amendments can retain similar titles, investor decks may use non-GAAP measures, and later reports may restate comparative periods.

The fingerprint proves which bytes were verified. The filing metadata proves which business and reporting context those bytes represent.

Step 2: preserve table structure and page geometry

A parser should preserve the relationship among:

  • table title;
  • units and scale declaration;
  • row hierarchy;
  • column hierarchy;
  • cells and merged cells;
  • page and region coordinates;
  • footnote markers;
  • extraction confidence and warnings.

Flattened text can make this table ambiguous:

Metric, USD millions Q3 2025 Q3 2024
Revenue 12.4 10.5
Operating income 1.8 2.1

The digit 12.4 is meaningful only with the Revenue row, Q3 2025 column, USD currency, and millions scale.

If the grounding source lacks table capability, do not silently “verify” a table cell by finding the digits in page text. Report the limitation and use visual review, a higher-fidelity parser, or an independent structured filing source.

Step 3: normalize numbers without changing meaning

Normalization should handle formatting while preserving financial semantics.

Displayed form Normalized interpretation
$12.4 with “USD millions” header 12400000 USD
(2.1) Negative -2.1 in inherited unit and scale
12.4% Decimal ratio 0.124, display percent 12.4
Missing, not applicable, or zero only if source policy defines it
1,250 Decimal 1250, not 1.25
€4.2m 4200000 EUR

Never remove parentheses before deciding whether they indicate a negative value. Never convert a dash to zero without a table-specific rule. Preserve precision: binary floating-point is inappropriate for exact currency checks.

Step 4: verify source evidence deterministically

For every direct financial claim:

  1. Confirm the source fingerprint.
  2. Resolve the page and table.
  3. Resolve the row and column identities.
  4. Confirm the cell text and normalized value.
  5. Confirm currency, unit, and scale.
  6. Confirm reporting period and dimensions.
  7. Resolve material footnotes.
  8. Record capability limits and observed evidence.

Ethos can perform source-bound checks over typed citation evidence when the GroundingSource exposes the necessary pages, elements, tables, cells, values, and fingerprints. It does not upgrade flattened text into structured table proof.

Verification status Meaning Default action
Grounded Submitted cell or value evidence resolves and matches Continue to computation and semantic review
Mismatch Target exists, but expected value or text differs Block and investigate
Not found Requested evidence target cannot be resolved Block or regenerate
Stale fingerprint Claim was built against another source version Re-ingest and reverify
Capability limited Parser cannot prove the requested structure Review or use stronger source data
Invalid Citation request is malformed Reject before release

Step 5: cross-check with XBRL when available

XBRL can strengthen numerical verification because it represents facts with machine-readable concepts, units, periods, and dimensions. It is not automatically infallible: extensions, tagging choices, amendments, dimensions, and filing context still require care.

For SEC filings, useful fields include:

  • taxonomy and concept;
  • entity CIK;
  • unit such as USD, shares, or USD-per-shares;
  • instant or duration period;
  • filing accession and form;
  • fiscal year and fiscal period;
  • dimensional context where available;
  • filed date and amendment state.

Use XBRL as an independent structured cross-check, not as a reason to discard the visible filing. The PDF or inline report is what a human reviewer often sees; the structured fact is what a machine can compare precisely.

A PDF cell and an XBRL fact should agree only after concept, period, unit, scale, dimensions, filing version, and sign are aligned.

Step 6: recompute derived claims with decimal arithmetic

Suppose the answer says revenue grew 18.1% from $10.5 million to $12.4 million. Verify both source values, confirm equivalent periods and units, and then recompute.

from decimal import Decimal, InvalidOperation, ROUND_HALF_UP


def parse_verified_decimal(raw: str) -> Decimal:
    try:
        value = Decimal(raw)
    except InvalidOperation as exc:
        raise ValueError(f"Invalid verified decimal: {raw!r}") from exc
    if not value.is_finite():
        raise ValueError("Verified decimal must be finite")
    return value


def percentage_change(previous: str, current: str) -> Decimal:
    previous_value = parse_verified_decimal(previous)
    current_value = parse_verified_decimal(current)
    if previous_value == 0:
        raise ValueError("Percentage change is undefined from a zero base")
    change = (current_value - previous_value) / abs(previous_value) * Decimal("100")
    return change.quantize(Decimal("0.1"), rounding=ROUND_HALF_UP)


verified_growth = percentage_change("10500000", "12400000")
assert verified_growth == Decimal("18.1")

The calculation is valid only if the inputs use comparable scope, accounting definition, currency, and period. Deterministic arithmetic cannot repair a semantic mismatch between quarterly revenue and annual revenue.

Step 7: distinguish source facts, calculations, and forecasts

Label each claim type explicitly.

Claim type Example Required verification
Direct source fact “Q3 revenue was $12.4 million” Cell/value evidence plus context
Derived calculation “Revenue increased 18.1%” Verified inputs plus recomputation
Reconciliation “Adjusted EBITDA excludes $2.0 million” Source facts, definition, and reconciliation rules
Trend synthesis “Margins are deteriorating” Multiple verified periods plus semantic/analytical review
Forecast “Revenue will reach $60 million” Assumptions, model version, scenario, and uncertainty

Do not present forecasts or analytical conclusions with the same “verified” label used for direct filed facts. A source may verify assumptions without validating the prediction.

Step 8: resolve footnotes and accounting definitions

Footnotes often determine whether values are comparable. They can explain:

  • changes in accounting policy;
  • restatements;
  • discontinued operations;
  • currency translation;
  • segment reorganization;
  • non-GAAP adjustments;
  • fair-value assumptions;
  • one-time charges;
  • scope changes or acquisitions.

A number can be transcribed perfectly and still support a misleading answer if its definition or footnote is omitted. Link each material fact to relevant footnotes and include those passages in semantic review.

Step 9: design the release policy

Use fail-closed rules for exact evidence and computation:

  • required source fingerprint must match;
  • required table capability must be present;
  • concept, period, unit, scale, and sign must resolve;
  • derived calculations must recompute within an explicit rounding rule;
  • missing or conflicting footnote context must trigger review;
  • source amendments must invalidate reusable evidence;
  • forecasts and high-impact conclusions must carry distinct review status.

Do not average these into one score. A strong answer-relevance score cannot compensate for a million-versus-billion error.

Test with adversarial financial cases

Test Mutation Expected result
Wrong period Q3 2024 cell labeled Q3 2025 Fail column or period check
Scale loss 12.4 million normalized to 12.4 Fail typed-value check
Sign loss (2.1) treated as positive Fail normalized-value check
Duplicate digits Same value exists in another row Fail row/cell binding
Stale filing Pre-amendment fingerprint Mark stale and block reuse
OCR decimal loss 12.4 becomes 124 Mismatch and parser warning
Wrong formula Correct inputs, incorrect growth rate Calculation gate fails
Missing footnote Non-GAAP exclusion omitted Semantic/accounting review fails

Add cases for currencies, fiscal calendars, zero denominators, rounding boundaries, merged cells, and restated comparative periods.

Present numerical proof to reviewers

An audit-ready interface should show:

  • the claim and claim type;
  • source title, filing ID, version, and period;
  • visible table title, row, column, and cell;
  • displayed and normalized values;
  • currency, unit, scale, and sign;
  • linked footnotes;
  • source page crop or region when permitted;
  • XBRL cross-check details where available;
  • calculation formula and verified inputs;
  • evidence, semantic, and review statuses separately.

This format lets a reviewer reproduce the answer without searching the entire filing.

The definitive verdict

Numerical claims from financial PDFs are verified by binding each value to an exact source version and complete accounting context. The core evidence is not merely 12.4; it is Revenue, Q3 2025, USD millions, positive, specific table cell, specific filing, relevant footnotes.

Use Ethos to verify supported source-bound citation and table evidence, structured filing data such as XBRL for independent typed cross-checks, and decimal code for calculations. Keep semantic analysis, accounting interpretation, forecasts, and materiality judgments in separate review layers. That combination catches the errors most likely to survive a simple “the number appears in the document” test.

Primary keyword: verify financial PDF numbers Optimized meta title: How to Verify Numbers from Financial PDFs Optimized meta description: Verify financial PDF numbers with source fingerprints, table cells, periods, units, footnotes, XBRL cross-checks, and exact calculations. Proposed URL slug: how-do-you-verify-numerical-claims-from-financial-pdfs

Frequently Asked Questions

Confirm the exact document version, locate the table cell or text element, preserve concept, period, unit, scale, sign, and footnotes, compare the typed value, and recompute any derived result.
The same digits can represent different currencies, periods, scales, concepts, or signs. A verified financial fact needs its labels and context, not only the visible number.
Ethos can verify cited source values and table evidence when the grounding source supports them. Applications must independently recompute ratios, totals, growth rates, and other derived claims.
Use both when available. PDF evidence supports human reconciliation with the filed report, while XBRL provides typed concepts, units, and periods that can strengthen machine validation.

Free Tool

PDF to JSON

Turn PDFs into structured, source-aware data for RAG, review, and automation.

Try PDF to JSON
verify financial PDF numbersfinancial RAGtable citation verificationAI numerical claimsXBRL factsfinancial document AI
D

DocuShell Team

The DocuShell editorial group writes and maintains guides for everyday PDF workflows, with updates made when tool behavior or documented limits change. See our editorial standards for the process behind each article.

Focus: Financial document parsing, numerical verification, table evidence, RAG evaluation, and deterministic computation

Questions or feedback? Get in touch.

Related Articles