Composite study

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.

4
Approach points
4
Tools in the pack
4
Layers covered
3
Challenges documented

Overview

Chitchat and navigation worked. Eligibility, deadlines, and “do I qualify” questions were abbreviated or wrong, with no citation.

Identity-proofed case status leaked another resident’s ticket when ids were sequential.

Industry pattern this is grounded in

Canada’s Auditor General reported that the CRA’s Charlie chatbot answered test questions incorrectly most of the time, after large spend. IRS chatbot self-serve rates have also declined in public reporting. Accuracy against a frozen question set is the product.

Highlights

Typical launch bar: Block until pass rules hold on the money, identity, or safety path.

Challenges

01

Teams celebrated containment rate (users who did not escalate) which can rise when the bot is confidently wrong.

02

Gold answers changed when regulations changed; the eval set was stale.

03

Voicebot and chatbot shared intents but not the same refusal behavior.

How we tested

01

A scored question bank from the real call-center top intents, with gold answers from the policy team.

02

“I don’t know / see this page” beats a short wrong answer.

03

Case status IDOR and language/accessibility on the filing path.

04

Records retention and what gets logged from a resident chat.

Starting point vs what we required

Starting point versus the controls we required
Starting pointWhat we required
Teams celebrated containment rate (users who did not escalate) which can rise when the bot is confidently wrong.A scored question bank from the real call-center top intents, with gold answers from the policy team.
Gold answers changed when regulations changed; the eval set was stale.“I don’t know / see this page” beats a short wrong answer.
Voicebot and chatbot shared intents but not the same refusal behavior.Case status IDOR and language/accessibility on the filing path.

What we delivered

01

Adversarial evals

  • Promptfoo — Gold question bank
02

LLM traces / evals

  • LangSmith — Trace and citation presence
03

API / contract

  • Postman — Case-status IDOR
04

Journeys / UI

  • Playwright + axe — Identity and filing UX

Outcomes

We reported accuracy on the gold set, not containment. Containment without accuracy was marked as a misleading metric in the report.

A dated eval set with an owner, plus IDOR tests, became the release gate. Voice and chat had to share the same gold answers.

Stack

Testing stack used on this product class
LayerToolWhat we validated
Adversarial evalsPromptfooGold question bank
LLM traces / evalsLangSmithTrace and citation presence
API / contractPostmanCase-status IDOR
Journeys / UIPlaywright + axeIdentity and filing UX

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.