In a product whose whole job is to say whether two numbers are the same, a model that occasionally invents a number is not a quirk. It is disqualifying. So InsightProofing splits the work: engines compute every value, pass, fail and change; models explain and draft over those results; and an answer that carries a number not in its facts is thrown away.

Who does what

WorkDone byWhy
Reading a value from a pageThe extraction engine (or InsightXtract)Each value keeps its page and line
Mapping a labelThe taxonomy cascade; a person confirms close matchesNothing silently guessed
Pass, fail, reviewThe proofing engineDeterministic, repeatable, testable
Broader, narrower, costlierThe comparison engineDirection is a property of the field
Explaining, prioritising, open questionsThe agents, with the modelLanguage is what models are good at
Drafting the carrier request and client summaryThe agents, with the modelHeld to the facts they were given
Deciding what is sentA personCapped at ask first

The grounding check

flowchart TB F["Engine results → numbered facts
[F1] Binder deductible $5,000 (p.2)
[F2] Policy deductible $10,000 (p.2)"] --> M["Model answers in a fixed shape:
summary · findings with fact ids · open questions"] M --> V{"Valid shape?
Every number
in the facts?"} V -->|"yes"| K["Shown, with the facts behind it"] V -->|"no"| D["Discarded; the engine's own
finding stands, marked as such"] K --> U["Fact-id markers stripped
before display"] style D fill:#fff4e2,stroke:#e0851f

The prompts say it in plain words: use only the facts given; do not state any amount, date, percentage or count that is not written in them; never invent a clause, a form, a party or an insurer; when the facts don’t settle a question, say so and put it in the open questions. The code doesn’t rely on the prompt being obeyed — it checks.

Drafts work the same way. The correction request prompt lets the model rewrite the opening and keep every correction exactly as given; the client summary prompt lets it write one plain paragraph and add nothing. If the rewrite carries a number that isn’t in the facts, the engine’s draft is used instead.

Findings · prepared for you
Decisions prepared by the agents on an illustrative general liability renewal
Prepared for you: a carrier label to confirm, three failed checks to raise with the carrier, and a practice leader sign-off — each with the facts behind it and Accept, Reject or Ask.

What a person sees

Every prepared decision says who wrote it: From the engines when the model was off or its answer was discarded, or the model’s reading with the facts behind it one click away. The run trace records the model, tokens, cost and time of every step. No fact-id marker ever reaches a screen.

AI & Agents · Run trace
The proofing checker's recent runs and one run's trace
The proofing checker’s runs and one trace on an illustrative umbrella check: the engines’ facts, the model step with tokens and cost, and the decision prepared.

For the account team

Trust the numbers because they came from the documents; use the model’s words to move faster.

For broker IT

A fixed answer schema, a validator, a numeric grounding check and an uncite pass before display.

For practice leadership

The model can be wrong about emphasis; it cannot be wrong about a limit.

Questions we get asked

What happens when the model is unavailable?

The engines’ findings stand and the screens say the model is off. Checking continues.

Is there a cost cap?

Each agent has a daily budget; above it, the fast model answers. Every step records its cost.

Keep reading