This is a product-class write-up, not a named-client story and not a results press release. Counts below describe the pack we actually write (approach points, tools, layers) — not invented bug totals or conversion lifts.
Overview
Users could open a claim in chat. A second session created a duplicate FNOL for the same event. Status text said “approved” while the core system said “review.”
Photo uploads from claim A appeared in a copilot answer for claim B after a retrieved-chunk mixup.
Public controversy around automated claims and prior-authorization systems is a reminder: status and denial language must match the system of record, not a model’s summary of similar cases.
Highlights
- System-of-record status only
- Duplicate-event handling
- Generated captions vs evidence
Typical launch bar: Block until pass rules hold on the money, identity, or safety path.
Challenges
The claims core lagged; the copilot cached a previous status and sounded current.
Image captions generated by a vision model described a license plate that was not in the photo.
Partners wanted a public tracker link that did not require login — that link enumerated claim ids.
How we tested
Deduplicate FNOL by policy + event window before the model talks.
Status is a tool read. The model may explain codes; it may not invent them.
Document tenancy on search and on RAG.
Adjuster vs policyholder views: notes and reserve amounts stay internal.
Starting point vs what we required
| Starting point | What we required |
|---|---|
| The claims core lagged; the copilot cached a previous status and sounded current. | Deduplicate FNOL by policy + event window before the model talks. |
| Image captions generated by a vision model described a license plate that was not in the photo. | Status is a tool read. The model may explain codes; it may not invent them. |
| Partners wanted a public tracker link that did not require login — that link enumerated claim ids. | Document tenancy on search and on RAG. |
What we delivered
Journeys / UI
- Playwright — FNOL, duplicate, document upload
API / contract
- Postman — Claim IDOR and public tracker enumeration
LLM traces / evals
- LangSmith — Retrieval mixing across claims
RAG quality
- Ragas — Status explanation grounded in the claim record
Outcomes
Enumeration on the public tracker was Critical. Status copy was bound to the API enum. Vision captions had to be marked generated and not stored as facts.
Duplicate FNOL now returns the existing claim id. We automated that with Playwright plus API tests.
Stack
| Layer | Tool | What we validated |
|---|---|---|
| Journeys / UI | Playwright | FNOL, duplicate, document upload |
| API / contract | Postman | Claim IDOR and public tracker enumeration |
| LLM traces / evals | LangSmith | Retrieval mixing across claims |
| RAG quality | Ragas | Status explanation grounded in the claim record |
Same method as the rest of our work: severity-ranked findings, pass rules in writing, and a ship / wait / block call. See the evaluation method and tool comparison.