A model that reads a book of business can say useful things about it: which producer's clients are leaving, what a contingent agreement means for the price, what to ask the seller. It can also, fluently, state a retention rate that nobody computed. In an acquisition that sentence ends up in a memo and a price. InsightRollup is built so it cannot.

The rule

  • The engines compute every figure from the rows, in code, with a citation.
  • The model explains — over numbered facts, in a fixed answer shape, citing fact ids.
  • An answer carrying a number that is not in the facts is thrown away, and the engine's finding stands alone.
  • With no model configured, every agent's engine findings stand, and the screen says so.

Facts first

Each agent receives its facts as a numbered list — label, value, source and citation — built from the engines' output for its playbook items. For the concentration analyst on an illustrative agency the facts include the top carrier's share of premium, each key producer's share and revenue, and the rows each rests on.

# the shape of a fact (illustrative values)
{"label": "Top producer share of revenue", "value": "26.1%",
 "source": "book export",
 "cite": "Book export ironwood_book_export.csv: 367 rows (written in the 12 months to 2026-10-29, producer Rex Dalton)"}

The answer shape

The model answers in one JSON shape: a summary under thirty words, at most five findings of one sentence each, each with the fact_ids it rests on, a confidence and open questions. The agent prompts say it plainly: use only the facts; do not state any amount, date, percentage or count that is not written in them; never invent a clause, a party or an insurer; put what the facts don't settle in open questions.

flowchart LR E["Engines
(pandas over rows)"] --> F["Numbered facts
F1..Fn with citations"] F --> M["Model reasons
fixed JSON shape"] M --> V{"Valid shape?
Every number
in the facts?"} V -->|"yes"| K["Findings with fact ids;
prose stripped of markers"] V -->|"no"| X["Answer discarded;
engine finding stands"] F --> X style X fill:#fdecec,stroke:#e57373 style K fill:#e8f8f4,stroke:#22c1a4

The check

Before an answer is kept, its shape is validated and every number in its text is compared with the numbers in the facts it was given. A number that is not there — a rounded figure the engine did not produce, a percentage the model computed itself — makes the answer stray, and it is discarded. The run records why. Citations are carried as fact ids, not as “(F3)” markers in the prose; the text a person reads has them removed and the sources shown as chips.

When the model is off

Every screenshot on this site was captured with the model switched off, deliberately. It shows the floor: the engines' findings, cited, standing on their own; the prepared decisions unchanged; the traces saying “reasoned by rules”. The model adds explanation, connection and better questions — never a figure.

Findings · what the agents found
What the agents found on an illustrative agency
What the agents found: each finding with severity, category, the agent, its review status and the book rows it cites.
AI & Agents · Run trace
An agent's runs and one run's trace
The concentration analyst's runs and one trace, captured with the model switched off: what the book said, the step that reasoned (here by rules), and what was prepared for a person.

For the deal team

You can trust a number on screen because you can open its rows, and no number arrives any other way.

For IT

Grounding uses the shared insight_diligence findings schema and validators; tests use known-answer books and never call a real model.

For corp-dev leadership

The memo's figures are reproducible from the rows; a model can be changed without changing a single number.

Questions we get asked

Which model does it use?

The model in your own cloud account (Bedrock in the reference deployment), configured per environment; it can be switched off per product.

Can the model change a finding's severity?

No. Severities come from the engines and the rules. What the model adds is the agent's reading of them, and every prepared decision is labelled with whether it was reasoned by the model or stands on the engines.

Keep reading