Ask any underwriting-ops team what a “submission” is and they will not point to a single file. They will describe a bundle: the broker’s cover email, an ACORD 125 with the business detail, an ACORD 131 with the excess structure, a statement of values, and a loss run going back five years. Each document is a different format, a different author, and a different slice of the same risk. The underwriter does not want five extractions — they want one clean, reconciled account record. The gap between those two things is where most document-AI tools quietly fall down.

Handling a submission as one record sounds simple until you hit the operational reality: documents arrive at different times, one of them is often wrong, and the same fact appears in more than one place with different values. A tool that treats the packet as an indivisible blob has to re-process everything whenever anything changes. InsightXtract takes the opposite approach — extract each document independently, cache the result, and consolidate by role — and that architectural choice is what makes the whole thing efficient and correct.

The pipeline: per-document extract, then consolidate

The flow has two distinct phases. First, every document in the packet is classified and extracted on its own, against its own spec, producing its own structured result with confidence scores and citations. That per-document result is cached. Second, a consolidation step merges those cached results into a single submission record, resolving overlaps by source role — a defined precedence about which document is authoritative for which field.

flowchart TB
    E["Broker email"] --> Xe["Extract email
(cached)"] A125["ACORD 125"] --> Xa["Extract ACORD 125
(cached)"] A131["ACORD 131"] --> Xb["Extract ACORD 131
(cached)"] SOV["Statement of values"] --> Xs["Extract SOV
(cached)"] LR["5-yr loss run"] --> Xl["Extract loss run
(cached)"] Xe --> C["Consolidate by source role
ACORD authoritative for
insured, limits, premium"] Xa --> C Xb --> C Xs --> C Xl --> C C --> R["One submission record
+ provenance per field"]

The important word is cached. Once the loss run has been extracted — and its 40 rows parsed, and any low-confidence figures reviewed — that result is settled. It does not need to be touched again just because a different document in the packet changed. Consolidation reads from the cache; it does not re-extract. This is the difference between an architecture that scales and one that re-does its own work.

InsightXtract console — The multi-document run view for one submission a list of the five documents (email, ACORD 125, ACORD 131, SOV, loss run) each with its own class, extraction status, and confidence summary
The multi-document run — each document in the submission is classified and extracted independently, with its own status and confidence, before anything is consolidated.

Consolidation by source role: who is authoritative for what

When the same fact lives in multiple documents, you need a rule for which one wins — and that rule should encode how underwriters already think. The broker’s email might mention a target premium; the ACORD carries the bound premium. The email might paraphrase the insured’s name; the ACORD carries the legal named insured. In P&C, the ACORD form is the authoritative document for the core account structure, and consolidation reflects that.

FieldAuthoritative sourceWhy
named_insured, FEIN, mailing_addressACORD 125Legal application of record
requested_limits, underlying scheduleACORD 131Excess/umbrella structure lives here
total_premiumACORD (bound) over email (target)Email target is pre-negotiation
Location values / TIVStatement of valuesSOV is the schedule of record
Claim history rowsLoss runCarrier-issued loss record
Effective date, context, intentBroker emailNarrative and timing cues

These precedences are configurable, not hardcoded assumptions. A program with its own conventions can define its own roles. What matters is that the resolution is deterministic and explicit — the same conflict resolves the same way every time, and you can point to the rule that decided it.

InsightXtract console — The consolidated submission output one unified account record with named insured, limits, premium, location schedule, and loss summary, assembled from all five source documents
The consolidated output — five documents resolved into a single account record the underwriter can act on, with conflicts already reconciled by source role.

The payoff: correcting one document doesn’t re-run the packet

Here is where the architecture earns its keep. Suppose the ACORD 131 was a scanned copy and the underlying-limits schedule came back with one low-confidence figure. A reviewer opens it, verifies against the source, and corrects it. In a monolithic system, that single correction would force the entire submission — email, both ACORDs, SOV, and the 40-row loss run — to be re-processed, because the tool has no concept of independent documents. That is wasted compute, wasted time, and a fresh chance to introduce new low-confidence flags on documents that were already fine.

In InsightXtract, correcting the ACORD 131 re-extracts only the ACORD 131. The email, the SOV, and the loss run results are read straight from cache — untouched, already reviewed, still valid. Consolidation then re-runs (it is cheap; it is just merging cached results by role) and produces an updated submission record. The reviewer’s one fix costs one document’s worth of work, not five.

Why independence matters

Because each document is extracted and cached separately, the unit of change is the document, not the packet. Fix the ACORD, and only the ACORD re-runs. The loss run you already reviewed stays exactly as it was. Effort is proportional to what actually changed — not to the size of the bundle.

Worked example: a premium conflict resolved by source priority

Take the Summit Logistics excess-casualty renewal. The broker’s cover email quotes a target premium of $148,000. The ACORD 131 states an annual premium of $152,500. Both are extracted, both are cached, and both are correct as readings of their own document — the email really does say 148, the ACORD really does say 152.5. The conflict is not an extraction error; it is a real difference between a target and a bound figure.

Consolidation resolves it by role: for total_premium, the ACORD outranks the email, because the ACORD carries the bound figure while the email target is pre-negotiation. The submission record shows $152,500 — and, critically, it records why. Now suppose the reviewer later corrects the ACORD 131 premium (say the scan was cut off and it should read $152,000). Only the ACORD re-extracts; consolidation re-applies the same role precedence; the record updates to $152,000. The email extraction never moved.

Provenance: every field knows where it came from

A consolidated record raises an obvious governance question: if this account record was assembled from five documents, which document did each field come from? InsightXtract answers that at the field level. Every value in the submission record carries provenance — the source document, the page, and the citation — so a reviewer or auditor can trace any number back to the exact place it was read.

named_insured = "Summit Logistics LLC" ← ACORD 125, p.1 requested_limits = "$10M xs $2M" ← ACORD 131, p.1 total_premium = "$152,500" ← ACORD 131, p.2 (email target $148,000 superseded) total_insured_value = "$48,200,000" ← Statement of values, p.1 largest_loss = "$310,000 (2023)" ← Loss run, row 17 effective_date = "2026-09-01" ← Broker email

This is what makes the “handled as one” promise trustworthy rather than a black box. The underwriter sees one record, but every field remembers its origin. When the premium shows $152,500, the provenance shows it came from the ACORD 131 and notes that the email’s target figure was superseded by source priority — not silently dropped.

InsightXtract console — The provenance view on the consolidated record hovering a field reveals which source document and page it came from, with the superseded premium value shown as a resolved conflict
Field-level provenance — every value in the unified record traces back to its source document and page, and resolved conflicts show what was superseded and why.

What this means for an ops team

  • One record to underwrite. The team acts on a single reconciled account, not a pile of five documents they have to mentally merge.
  • Cheap corrections. Fixing one document re-runs one document. The reviewed loss run and SOV are reused, not redone.
  • Deterministic conflict resolution. When the same fact appears twice, source role decides — the same way every time, and visibly.
  • Full traceability. Every field in the consolidated record knows its source document, page, and any conflict it resolved.

A submission is many documents. The underwriter should never have to feel that. By extracting each piece once, caching it, and consolidating by role, InsightXtract lets a five-document packet behave like a single, coherent, correctable record — efficient to process, cheap to fix, and honest about where every number came from.