A broker’s letter to a carrier that misstates a deadline or a limit is worse than no letter. So InsightAdvocate draws a hard line: every figure and every assessment comes from a deterministic engine over the claim’s record. The model reads those figures and explains them. It never makes one.
The engines
| Engine | What it computes, and what it cites |
|---|---|
notice | Per policy: the condition, the deadline, sent on time, late or overdue — cited to the notice clause |
coverage | Each carrier position assessed; grants not addressed — cited to clauses, letters, the loss schedule |
other_insurance | Other lines, excess layers reached, the prior claims-made year — cited to the policies |
sla | Service-agreement and illustrative regulatory clocks — cited to timeline entries |
settlement | Claimed, accepted, disputed, expected, the floor — cited to the loss schedule |
loss_trend | Frequency, severity, loss ratio by year — cited to the loss runs |
scorecard | Carriers’ claims handling across the book |
Each engine reads rows and returns plain data, so each is tested on known answers. No test calls a model: the AWS client refuses Bedrock in the test suite.
The grounding check
The model answers in a fixed shape and refers to facts by their numbers. Before anything is shown, its answer is checked: a figure that isn’t among the facts throws the whole answer away and the engine’s own findings stand. Fact markers are stripped from everything a person reads, so a client update never says “[F3]”.
Every prepared decision carries “the facts behind it”: open it and the numbered facts are there, each one a value the engine computed from a dated record.
What this buys
- An E&O defence. Any figure in a letter can be traced to the record it came from.
- A model you can change. Swapping or upgrading the model cannot change a deadline or a floor.
- Honest fallbacks. With the model off, every agent still prepares its work from the engines.

