Skip to content
New: ask the Rexfin Analyst Agent about your model. Every figure comes back cited.
· 7 min read

Two Extractors Must Agree Before a Number Enters Your Model

Rexfin reads every filed statement with multiple independent extraction engines and refuses to treat a figure as citable unless at least two agree on it.

By The Rexfin team

Every AI finance tool that pulls numbers out of a PDF is making a bet: that one parser, or one model reading the page, got it right. Rexfin refuses to make that bet. A figure only becomes citable (only earns the badge, the reconciliation, the click-to-source link) once at least two independent engines have read it off the page and landed on the same value.

Why one reader is never enough

A single extraction pipeline, however good, fails silently in ways nobody catches until the number is already in a board deck: a merged cell that shifts a column, a footnote superscript that gets read as part of the figure, a scanned page that a parser reads with false confidence instead of flagging as unreadable. The failure mode isn’t “the tool crashes”: it’s “the tool produces a plausible wrong number and hands it to you with no signal that anything went wrong.” That is the exact failure mode Rexfin’s whole trust chain exists to prevent, and it starts at the point of extraction, not downstream of it.

How the backends actually disagree, and how that gets resolved

Rexfin runs several extraction engines over the same page independently: a layout-aware table extractor, a text-and-geometry extractor, a dedicated table parser, and a pixel-based OCR read of the rendered page, plus, optionally, a vision-language model used strictly as a tie-breaker, never as one of the two required independent votes on its own. Each backend has no visibility into what the others produced.

Before any comparison happens, the same logical cell has to be matched across backends (the same line item, the same period column) using label similarity and the geometric position on the page, because two engines can only “agree” meaningfully if they’re actually looking at the same cell. Once aligned, values are compared within a tolerance that scales with the statement’s rounding unit rather than a flat dollar amount, since two engines reading “4,914” versus “4,915” on a thousands-rounded IFRS statement are not disagreeing: they’re both right.

Independence has to mean something

Counting votes only works if the votes are actually independent. Two wrappers built on the same underlying parsing engine don’t count as two votes just because they’re packaged separately: Rexfin’s independence policy groups backends this way explicitly, so agreement can never be manufactured by two flavors of the same core engine nodding at each other. A further, sharper rule: on a digital PDF, three deterministic parsers can all be reading the exact same embedded text stream three different ways: if that underlying text layer is corrupted or mismapped, all three can confidently agree on the same wrong number. To close that gap, a citable figure has to include at least one read anchored to the rendered pixels of the page (an OCR pass, not just a re-parse of the file’s internal text), so agreement is tied to what a person would actually see on the page, not merely what the file claims is there.

What happens when they don’t agree

A figure with only one backend reading it, or with backends that genuinely disagree, doesn’t get silently dropped and doesn’t get silently promoted either. It goes into a quarantine lane: visible in context so nothing disappears from the picture, but explicitly marked as not-citable and carrying no clickable source link. There is no path for a quarantined figure to become citable later without agreement being re-run: confidence can’t be upgraded by fiat.

What this makes possible downstream

This gate is upstream of everything else in the model. It’s what makes the reconciliation status in the statement grid meaningful rather than cosmetic, what the provenance drawer displays as its backend-agreement badge, and one of the two hard preconditions the export gate checks before a board pack can leave the building. None of those downstream guarantees mean anything if the number they’re protecting was never independently verified in the first place, which is exactly why this check runs first, before a figure is even allowed to become a candidate for citation.

For teams evaluating whether an AI reading their filings actually got the numbers right, this is the layer worth asking about directly: not “did it extract the data” but “how many independent reads agreed, and what happens when they don’t.” See how this fits into the rest of the product at the product tour hub.

Part of Rexfin Product Tour: Every Number Traceable

Keep reading

Book a demo

See your numbers tie out.

Book a 30-minute demo. Bring a question you can never answer fast enough, and we will model it live against real financial data.