Hanah ← Trust Center Australia · Validation methodology
Validation methodology · v1.1

How we measure accuracy.

Transcription accuracy and documentation hallucination are tested as one thing: one harness, one versioned corpus, one end-to-end run per recording — then graded through two complementary layers. Layer A (Word Error Rate) measures how the speech-to-text pipeline performed against verbatim ground-truth. Layer B (LLM jury) measures whether the generated clinical document captured the facts that were declared important up front, and whether it added anything that wasn't said. Reasoning split across two layers, not collapsed into a single score that hides the trade-offs.

Layer A — WER · live Layer B — LLM jury · v1 panel Layer C — semantic drift · scheduled

Why this is one methodology, not two

It's tempting to publish a WER number and a separate "hallucination rate" on different pages. We don't, because they share everything that matters: the same audio, the same end-to-end run, the same versioned corpus, the same release cadence, and the same set of reviewers signing off the underlying ground truth. Splitting them into two pages would suggest two independent programmes — in fact a single run produces both numbers, and a regression in one usually shows up in the other. Each recording flows through the production pipeline once; the artefacts from that one run feed every layer of evaluation below.

  1. 1
    Recording — audio + verbatim ground-truth + pre-registered fact list, version-pinned in the repo.
  2. 2
    End-to-end run — clinician sign-up, patient creation, recording, document generation. Same paths a production user takes.
  3. 3
    Layer A — WER compares the captured transcript to ground truth.
  4. 4
    Layer B — LLM jury grades the generated document against the fact list, atomically, one fact per call.
  5. 5
    Aggregate & publish — single aggregate.json renders the public transparency page.

The corpus

A fixed, version-pinned set of recordings the methodology runs against. Each recording is paired with a verbatim transcript and a hand-authored fact list of the clinical points that should appear in the generated note (and the points that must not).

v1 — synthetic, multi-vendor TTS

Synthetic audio sounds artificial; we use it deliberately. The script is the reference transcript, so ground truth is exact rather than transcriber-approximated. The whole corpus can be published byte-for-byte alongside the validation report — auditors can re-run the harness against the same input and reproduce the published numbers.

  • Multi-vendor accent sweep

    Each accent / cohort cell is sampled from at least two TTS vendors — ElevenLabs, OpenAI TTS, Google Cloud TTS, Azure Neural — so single-vendor voice-library artefacts surface as cross-vendor disagreement rather than absorbing silently into the headline number. Coverage spans NZ, AU, UK, US, Indian, and Pacific-influenced English plus L2 speaker profiles, across allied-health, primary-care, and outpatient appointment types.

  • Pre-registered fact list per recording

    Drafted by the script author, signed off by the Clinical Lead before any model sees the audio. Three buckets: positive facts (must appear in the note), negative facts (must not be falsely asserted), and allow-listed boilerplate (clinical safety-net language permitted even when not in the transcript). Fact lists are version-pinned; changes bump the version and trigger a re-run.

  • 🟡
    What v1 does and does not claim

    v1 measures regression, upper-bound WER on clean audio, end-to-end pipeline correctness, repeatability, and per-cohort STT variance across English-accent cells. v1 does not claim performance on real-world environmental noise, te reo Māori, authentic code-switching, dysfluency, dysarthria, or paediatric speech — synthetic TTS is unrepresentative for those. LLM-layer bias on real cohort content graduates to v2/v3.

Graduation roadmap

VersionAudio sourceBias claimTarget
v1 Multi-TTS, multi-accent synthetic — 10 recordings spanning the accent and appointment-type sets Substantive Layer A bias signal across English-accent variation; LLM-layer bias remains a v2/v3 gate Delivered
v2 Role-play: NZ clinicians + clinical actors in clinical-realistic environments First cohort-specific bias signal — limited by scripted content Contract +60 days
v3 Real consent-based recordings, AU production cohort first, then partner NZ clinics Real-world bias measurement on AU / partner-NZ cohorts Contract +120 days
v4 Joint clinical validation cohort with Health New Zealand HNZ-deployment-representative bias claims Per HNZ deployment milestone

Layer A — Word Error Rate

The mechanical layer. Word Error Rate is a long-established speech-recognition metric: the count of substitutions, insertions, and deletions between what was transcribed and what was actually said, divided by the reference word count. Lower is better; 0% means the transcript matched ground truth word-for-word.

WER = (substitutions + insertions + deletions) / reference word count

Industry baseline anchor. Published WER ranges for ambient scribe products in healthcare typically sit in the 6–12% range for clean-audio English on technical content. Hanah's v1 numbers are presented alongside this range so reviewers have context, rather than evaluating a bare number against an undefined "clinically acceptable" bar.

Honest limitation. A high-impact substitution (10mg100mg) and a low-impact one (okayOK) count the same in raw WER. That's why Layer B exists — clinical-content correctness cannot be inferred from token-level WER alone.

Layer B — LLM jury for coverage and hallucination

The qualitative layer. The generated clinical document is graded against the recording's pre-registered fact list by a panel of independent LLM evaluators drawn from multiple vendors. Two properties are measured separately so they can be reported separately:

Coverage (recall)

Did the note capture each clinical fact the recording asked for? One jury call per pre-registered expectation in detailsThatMustBeCaptured, per output, per juror, repeated for an internal majority vote. Yes / partial / no.

Hallucination (precision)

Does the note contain clinically-meaningful claims that are not supported by the transcript? One jury call per generated output, per juror, returning a list of fabricated claims — content the model invented. Cross-juror agreement is preserved in the panel union.

The exact prompt every juror sees

System prompt and user-message template are version-pinned in the harness repo (app/next/tests/accuracy/lib/juror.ts) and synced to this page on every results refresh. Both are reproduced verbatim below — auditors see exactly what the model was asked, not a paraphrase. Reruns and panel composition vary; the prompt envelope itself does not.

Prompts have not been synced yet. Run REGION=au website/publish-trust.sh.

Atomic single-question calls

Every judgment the harness asks of the jury is one fact, one question, one call. Asking a model to grade an entire note in a single call is well-known to produce "looks fine" averaging where individual errors get smoothed over. Atomic calls are also auditable — anyone can re-run a single judgment and see all three juror responses plus the panel verdict.

What counts as a hallucination

For each output, the jury is given the transcript and the generated document. Each juror enumerates every clinically-meaningful claim in the output that is not supported by the transcript — the model invented it. The panel result is the cross-juror union, deduped by claim text. The headline metric counts only confirmed flags — claims flagged by ≥2 jurors; single-juror flags are surfaced as "provisional" in the per-output drill-down but excluded from the headline. The two-juror agreement bar is what makes the metric robust against a single juror's strict-interpretation false positives.

Counts as a hallucinationDoes not count
A symptom, finding, history item, dose, medication, side (left vs right), measurement, or temporal detail asserted in the output but not grounded in anything actually said in the transcript. Boilerplate, document headings, formatting, or section labels.
A wrong-dose, wrong-side, or wrong-medication claim, even when surface-similar to something said. Phrasing variations and paraphrases that preserve the clinical meaning of something the transcript actually contained.
An invented finding presented as fact ("patient denies fever" when the transcript was silent on fever). Reasonable structuring of grounded content into note sections (e.g. moving a symptom into "History of presenting complaint").
A clinical statement that goes beyond reasonable paraphrasing of the transcript. Standard safety-net language that does not assert a new clinical fact ("recommend review if symptoms worsen").

We deliberately do not flag content that is grounded in the transcript but outside the expectations list. detailsThatMustBeCaptured is a must-have list, not a "this is everything the document should contain" contract — penalising every grounded claim that wasn't on it produced too many false positives, especially for SOAP-style notes whose Objective and Assessment sections legitimately go beyond the named must-haves.

Jury composition

Independent models from multiple vendors, so failure modes are uncorrelated. The harness is provider-agnostic: any model exposed through a supported adapter can sit on the panel, and panel size grows over time as adapters land. The pattern is published as Replacing Judges with Juries (Verga et al., 2024, Cohere) — we use it because triangulation across independent models lands more cleanly in clinical-safety contexts than single-model trust.

SlotVendorNotes
Juror AAnthropic (Claude, Sonnet or Opus tier)Strong instruction-following; conservative on hallucination calls.
Juror BOpenAI (GPT-4 family)Different training corpus and alignment approach to A.
Juror COpen-weight (Llama or Mistral)Transparency lever — HNZ or any reviewer can re-run this slot themselves.
Juror D (optional)Google (Gemini)Same vendor as the production generation pipeline. Reported separately — see caveat below.

Same-vendor caveat. Gemini may participate in the jury, but the production document-generation pipeline also uses Gemini, and same-vendor judging can produce correlated blind spots — a fabrication produced by Gemini-as-generator may be more likely to be considered plausible by Gemini-as-judge. The mitigation is operational: Gemini's verdicts are reported separately from the multi-vendor panel verdict, so a reader sees what Gemini-only would have said versus what the multi-vendor panel said. When the panel is N=1 and that single juror is Gemini (e.g. early dev runs), the validation report names this explicitly so readers don't over-read those numbers.

Decision rule (scales with panel size)

Panel sizeDecision rule
N = 1The single juror's verdict stands; juror-internal repeat-and-vote is the variance-reduction lever.
N = 2Both must agree; on disagreement the call is logged as a split and the conservative verdict (partial) is recorded.
N ≥ 3Majority vote per Verga et al.; unanimous verdicts are recorded as high confidence; majority-but-not-unanimous is logged as a split.
Any sizeDisagreement on hallucination severity is promoted to Clinical Lead manual review on the published subset.

Reports include the per-recording jury agreement rate: the fraction of calls where the jury was unanimous (when N ≥ 2). High unanimity signals clear-cut cases dominate; high split rate signals the methodology is operating in the hard zone. Both are useful information for evaluators, not flaws to hide.

Repeat-and-vote per juror

Each juror is called R times at temperature 0 (default R = 3, configurable per run); the juror's vote is the majority of its own R responses. This kills the 5–10% of calls where a single juror has a flaky response. Cost is N × R calls per judgment; the model classes used are cheap relative to the generation pipeline, and the variance reduction is the point. Lower R for fast development iteration; raise R for higher-confidence published numbers.

Calibration and inter-rater agreement

Cohen's κTreatment
≥ 0.7Jury verdicts are defensible as a proxy for clinical-expert judgement.
0.5 ≤ κ < 0.7Published with explicit caveat; methodology iteration triggered.
< 0.5Methodology fails this report; results are not published as accuracy claims; harness is investigated.

Cohen's κ is not a vibe metric — it controls for chance agreement. Including it converts the jury from "trust the LLMs" to "the LLMs were measured against a clinician on every report".

Layer C — Semantic drift scheduled

A bridge metric between raw WER (token-level) and the LLM jury (clinical-content level). Both the reference transcript and the generated documentation are embedded with a shared embedding model; cosine similarity gives a drift score per recording. Captures restructuring fidelity — documentation is meant to abstract from the source, but should preserve clinical meaning. Useful as a cheap continuous metric without per-recording annotation, and trends easily over time. Outliers (drift > N σ from mean) are flagged for human review. On the roadmap; not in the v1 published numbers.

Repeatability

A pipeline can be accurate-on-average but inconsistent — the same audio producing different documentation each time is a clinical-safety concern, not a curiosity. A subset of corpus recordings is processed N times per CI run (default 3). All evaluation layers run on each rerun; variance across reruns is the repeatability score, reported alongside the headline accuracy numbers.

Reporting cadence

ArtefactAudienceCadence
CI summary Engineers Per pull request — pass/fail with diff against main, ~10 minutes runtime, fails on regression beyond threshold (overall WER > 2 pp, any cohort > 5 pp).
Nightly trend Engineering + leadership Continuous — full corpus, full per-cohort breakdown, repeatability evaluation.
Public transparency report Customers, evaluators, auditors, regulators, the public Quarterly — every recording, transcript, generated document, per-juror verdict and reasoning. Live page renders directly from the harness's aggregate.json.

Reproducibility

Statistical methodology

Boring but defensible. Specifying these explicitly converts every report from "we ran the harness" into "we ran the harness with this method, others can reproduce".

ElementChoice
WER computationjiwer Python library, version-pinned in the lockfile.
Text normalisationLowercase, strip punctuation, expand common abbreviations, Unicode NFKC. Rules version-pinned.
WER confidence intervalsBootstrap resampling (10,000 resamples) at 95% confidence; reported as WER% [lower, upper].
Per-cohort comparisonPaired bootstrap on the same recording set across versions; permutation test for cross-cohort differences.
Inter-rater agreementCohen's κ between jury and Clinical Lead on the 20% human-graded subset, reported per metric (coverage, hallucination), not just overall.
Hallucination rate denominatorSentences in the generated note (so the rate is comparable across notes of different length).
Coverage rate denominatorPre-registered positive facts (so 100% means every required fact is captured).
Per-juror disagreementFleiss' κ across the jury per call, aggregated per recording — a juror-consistency check (computable when N ≥ 2).
Multiple-comparison handlingBenjamini-Hochberg FDR correction when testing per-cohort differences across many cohorts simultaneously.
Variance reductionRepeat-and-vote (3× per juror at temperature 0); jury-of-three majority per Verga et al.

Limitations stated up front

These appear on page 1 of every validation report so consumers understand the scope of what's being measured.

On the corpus (v1 specifically)
  • Overall WER on synthetic audio is an upper bound on real-world WER. Real audio has environmental noise, overlapping speech, dysfluency, and clinical-environment artefacts absent from synthetic.
  • Per-cohort STT WER variance across English-accent cells produced by multiple TTS vendors is a substantive Layer A bias signal — using more than one vendor per cell surfaces single-vendor voice-library artefacts as cross-vendor disagreement rather than absorbing them silently into the headline number.
  • v1 does not establish LLM-layer bias (omission, stereotyping, cultural fit) or performance on te reo Māori, authentic code-switching, dysfluency, dysarthria / AAC, or paediatric speech — those remain real-cohort gates and graduate to v2 (role-play with NZ clinicians + actors) and v3 (real consent-based audio).
  • Synthetic NZ-accent and Māori-accent voices are trained on small, potentially unrepresentative corpora; cross-vendor sampling reduces but does not eliminate that risk. They are not a substitute for real Māori speakers and the harness does not present them as such.
  • v1 hallucination rate is an under-bound. Clean input gives the LLM less noise to confabulate from; real-world rates will be higher.
On the jury
  • The LLM jury is itself imperfect. Cohen's κ against Clinical Lead grading is the published bound on how far jury verdicts are trusted. κ < 0.5 means the report is not published as an accuracy claim.
  • Allow-listed boilerplate is a judgement call. A permissive list reduces false hallucination flags but could mask genuine drift. Allow-list changes require Clinical Lead approval and are logged.
  • Pre-registered fact lists encode a clinician's view of what matters. Reasonable disagreement on what a note "should" capture is possible.
On scope
  • HNZ-deployment-specific accuracy can only be confirmed by deployment-specific validation. v3 covers the AU production cohort; v4 (joint with HNZ) is the path to NZ-deployment-representative numbers.
  • Repeatability tests catch within-run variance; cross-version drift is reported separately as a quarter-over-quarter paired comparison.
  • Sample-size honesty. With n = 10 recordings spread across 4–5 cohorts, per-cohort confidence intervals are wide. Wide intervals are reported transparently with growth plans, rather than presenting narrow-but-unrealistic intervals.

Where the evidence lives

References

Methodology v1.1 · last updated 2026-04-29 · maintained by CEO + Clinical Lead + engineering. The published validation report cites the methodology version it was produced under so claims are always traceable to the exact rules they were graded by.