Contents
Get a scoped quote

AI hallucination audit for assistants that answer from your sources

We test your assistant's answers to real questions for hallucinations. You get one rate with its range, and each failure shown against your sources.

Get a scoped quote

First reply within 1 business day

See how each failure is reported

Embedded YouTube player: the AI hallucination audit, what it measures and what you get, 1 minute 30 seconds.

Duration
2 to 4 weeks for one assistant, set in your scope
Report
Within 5 business days of measurement ending
After fixes
One before-and-after test of your fixes on the same questions, within 60 days of the report
  • Fixed scope and fee agreed in writing before work starts.
  • Access: the rate needs a redacted log export, and the before-and-after test needs a test setup, ready before fixes ship.

What is an AI hallucination audit?

An AI hallucination audit verifies your own assistant's or agent's output against the sources it is meant to answer from, and measures how often it says something those sources do not support.

Read more

The same words are used for AI-assisted professional work, such as reports, filings and client deliverables with citations, and for AI-assisted content that agencies and publishers release. We check both, each scoped separately, against the sources you provide.

How do you test an AI assistant for hallucinations?

We split each sampled answer into its claims and check each claim against your sources. Automation proposes a verdict; a person decides every one. Answers to real questions are scored apart from edge cases we write to probe each failure type.

Read more

Before a person marks a claim unsupported, they search your full source set, not only the passages the assistant retrieved.

What is an AI hallucination rate, and how is yours measured?

Your assistant's hallucination rate comes from a random sample of your own conversations, one answer scored per conversation. In this audit, the rate is the share of sampled answers with at least one claim your sources do not support, given with its range.

Read more

A published hallucination rate belongs to its own benchmark. Vectara's public leaderboard, for example, measures one task, summarising documents, scored by its HHEM-2.3 model. Its own FAQ agrees that it "does not definitively measure all the ways a model can hallucinate".

Rates by model answer a different question: which model does best on someone else's task. NIST's Generative AI Profile notes that testing restricted to benchmark datasets "may not extrapolate well to" real-world conditions. Rates are also quoted per claim rather than per answer; your report states its unit.

The chatbot said one thing, the airline's own page another

In Moffatt v. Air Canada, a website chatbot's answer about bereavement fares contradicted the airline's own policy page, and a customer relied on it.

The tribunal held that the airline is responsible for all the information on its website, whether it comes from a static page or a chatbot, and ordered it to pay damages.

Source: Moffatt v. Air Canada, 2024 BCCRT 149, Civil Resolution Tribunal of British Columbia, 14 Feb 2024

Scores from a model or rules are estimates. Until they are checked against answers a person verified on your own data, you cannot tell how far to trust them.

Read more

The chatbot's answer, from the screenshot quoted in the decision: "If you need to travel immediately or have already travelled and would like to submit your ticket for a reduced bereavement rate, kindly do so within 90 days of the date your ticket was issued by completing our Ticket Refund Application form." The linked page said the policy does not apply to requests made after travel is completed.

The words "bereavement fares" in the answer linked to that page, and the tribunal inferred that a screenshot the airline supplied showed part of it.

The airline argued it could not be held liable for information its chatbot provided; the tribunal called this "a remarkable submission". It also said the airline did not explain "why customers should have to double-check information found in one part of its website on another part of its website", found the customer's reliance reasonable, and found negligent misrepresentation made out. It found the airline had not taken reasonable care to ensure its chatbot was accurate.

The decision does not state the chatbot's technology: the airline did not provide any information about its nature.

The chatbot's answer

"If you need to travel immediately or have already travelled and would like to submit your ticket for a reduced bereavement rate, kindly do so within 90 days of the date your ticket was issued by completing our Ticket Refund Application form."

From the screenshot quoted in the decision

Contradicted

The airline's own policy page

The linked page said the policy does not apply to requests made after travel is completed.

Two lines side by side. The chatbot: submit your ticket for a reduced bereavement rate within 90 days of the date your ticket was issued. The linked page: the policy does not apply to requests made after travel is completed.

What you get from a hallucination audit

Your report lays out each failure like this.

  • Your rate with its range, and what to fix first
    • What counts: an answer fails when at least one claim is unsupported by or contradicts your sources.
    • The rate over sampled answers, with its interval.
    • Failures by type in fix order, each as a count out of the sample, with the probable stage where it can be determined.
    • Omissions, and answers declined although your sources held the answer, counted separately.
    • Account-specific answers we could not check, counted as a coverage gap.
    • Items your reviewer decided, and the rate on settled labels where it differs.
    • For example, 30 failed answers out of 300 sampled is a rate of 10%, with an interval of about 7% to 14%. The sample size for your assistant is set in your written scope.

    How the measurement works

  • Each sampled failure shown against your sources

    Every failure in the sample is written up in this layout, so your engineers can check each verdict against the passage for themselves.

  • Edge-case results by failure type

    Questions we write to probe each failure type, reported as failures found among the questions written for that type, false commitments to a customer first. They are never part of your rate.

  • A before-and-after test of your fixes

    The same frozen questions, re-run on your fixed version, with the change question by question and its range. A new measured rate needs a new random sample, quoted separately.

  • The frozen test set and failure cases, handed back

    The frozen test set and each failure case, with the expected source passage.

  • Independent measurement, not a certification.
  • An audit of a system Veriprajna designed, built or operates is labelled an internal review, and if Veriprajna authored any remediation, the report says so.
Report layout: one failure
Question

The sampled question, with the conversation up to that turn.

Answer

Your assistant's answer, exactly as logged.

Claims against your sources

Claims against your sources

AnswerYour sources
  1. Supported
  2. Supported
  3. Contradicted

An answer split into claims, each checked against a passage in your sources; one claim is marked contradicted.

Each claim with its verdict: supported, with its passage; contradicted, with the passage it contradicts; or not found in your sources after a full search.

Failure type

For example, a false commitment to a customer about a price, refund, legal or safety point.

Probable stage

Retrieval, generation, source content, or scope and decline rules; or not determinable from the export.

Fix guidance

What usually fixes this type at this stage, and the frozen question that will show whether it did.

Is this for you?

A fit

Not a fit

  • You have no assistant yet: start with AI Readiness & Risk Assessment
  • You want every model or prompt change gated before release: LLM & Agent Evaluation
  • You want a runtime guardrail layer built: Agent Guardrails & Human-Oversight Controls
  • You need an attestation for a third party: Independent AI Assurance & Third-Party Testing

How we work with you and protect your data

If you are choosing a company for an AI hallucination audit, here is what we commit to and how your data stays protected.

You get

  • False commitments to a customer (price, refund, legal or safety) reported to you the same day they are confirmed
  • Work products go into your repository as they are produced
  • Liability capped at the fees paid for the engagement, as set out in the MSA and SOW
  • You send a redacted or pseudonymised export under our DPA. No client data goes to a third-party model or grading service unless agreed in writing. It is deleted on the schedule in your scope.
  • Written authorisation and scope before any work. We never name you, reference the engagement or publish findings without your written consent.
  • We issue no attestation, certification or summary letters.
  • An NDA, a DPA and an MSA are shared at contracting.
How client data moves in an audit Under written authorisation and scope, before any work: you send a redacted or pseudonymised export under our DPA; the audit uses it; no client data goes to a third-party model or grading service unless agreed in writing; no production endpoints are used; the data is deleted on the schedule in your scope. Written authorisation and scope Before any work Redacted orpseudonymised export Under our DPA The audit Deleted on theschedule in your scope Third-party modelor grading service Unless agreedin writing Productionendpoints

How client data moves in an audit: you send a redacted or pseudonymised export under our DPA; no client data goes to a third-party model or grading service unless agreed in writing; no production endpoints are used; the data is deleted on the schedule in your scope.

How an AI hallucination audit runs

Five steps. The one fixed point: we capture the before run before any fix ships, so before and after compare like with like.

  1. We agree what we audit, the sampling frame and what you provide; the written scope sets the sample size and dates.

    More

    What we can audit

    • One assistant, live or before launch. Live: a random sample of real questions, plus an edge-case set. Before launch: a random sample from a named ticket, email or search-log set and date range, put to the assistant in test. That gives a rate on real questions with answers generated in test, labelled as such. With no real questions, you get edge-case failures only, and no rate.
    • Agent outputs. Factual statements and stated system state, checked against the sandbox's state record, in a sandbox or dry run only. Testing what the agent's tools can be made to do belongs to the AI Agent & MCP Security Assessment.
    • AI-drafted documents with citations. Each citation gets one of three results: located, with the passage checked; not located in the sources available to us, reported as unverified and never called fabricated; or located, with a passage that does not appear to support the sentence. We check against the sources you provide, or public reporters. Your counsel or professional decides support and keeps their own professional duty. Courts already see this failure: Damien Charlotin's AI Hallucination Cases database tracks legal decisions in cases where generative AI produced hallucinated content, typically fake citations, and had identified 2,241 cases as of 29 October 2026.
    • AI-assisted content. A random sample of published or ready-to-publish pieces, with the piece as the unit. Each piece gets a findings list: each unsupported claim, missing reference, or misattributed figure or quote, with the source we checked or "origin not located". You get a rate per piece, with its interval.

    What you provide

    The rate needs only a redacted log export, plus a record extract for account-specific answers, or those are reported as a coverage gap. Probable stage needs the passages your assistant retrieved for each sampled turn, as logged at the time, or, where the index is unchanged since the turn, from context replay, labelled as replayed; without them it is reported as not determinable from the export.

    A test setup is needed only for the before-and-after test, in place before fixes ship; without one, that test is left out of the scope.

    The test setup is a non-production endpoint, a scoped key with a spend cap that is revoked at handover, or a script you run yourself, with context replay. We never use production endpoints. For agents: a sandbox or dry run, with its state record. From your side: a few hours of one reviewer's time, plus engineering time for the export, the record extract, the test setup and replay, each estimated in the written scope.

  2. We decide each sampled answer; your reviewer blind-checks a subset.

    More

    The duration comes from one thing: a person decides every sampled answer, and searches your full source set before confirming any unsupported verdict. An optional interim read-out of confirmed failures, without a rate, is given after the before run is captured; fixes wait for that capture.

  3. Your report arrives, then one readout call of about 60 minutes to walk through the failures and the fix order.

  4. You ship your fixes.

  5. The same questions re-run on the fixed version.

Standards this audit relates to

Two public frameworks name this risk and suggest testing for it.

NIST AI 600-1, Generative AI Profile

July 2024NIST AI 600-1 (PDF)

IDNameWhat it saysHow the audit relates
2.2ConfabulationConfidently stated but erroneous or false content, known colloquially as hallucinationsWhat counts as a failure, in the deep dive
MS-2.5-001Avoid extrapolating from anecdotal assessmentsSuggested action: avoid extrapolating performance from narrow, non-systematic and anecdotal assessmentsA random sample of your own conversations, with its interval
MS-2.5-003Review and verify sources and citationsSuggested action: review and verify sources and citations in outputs, before deployment and in monitoringEach sampled claim checked against your sources; the cited-documents unit
A.1.4Pre-deployment testingBenchmark testing may not extrapolate well to real-world conditionsYour rate measured on your own questions, not a benchmark

OWASP Top 10 for LLM Applications 2026

LLM07:2026 MisinformationOWASP GenAI LLM Top 10 2026

IDNameWhat it saysHow the audit relates
Example 1Unsupported or false decision supportIncorrect or unsupported information influences business, legal, healthcare, financial or operational decisionsThe rate and each failure on sampled answers
Example 2Incorrect state inference in workflowsAn LLM infers that a condition has been met when it has notAgent unit: stated system state checked against the sandbox state record
Example 4Misleading summaries and critical omissionsSummaries omit key constraints, exceptions, timestamps or risksOmissions counted separately from the rate
Mitigation 1Ground claims before actionRequire outputs to be grounded in authoritative and current sourcesFix guidance by stage
Mitigation 4Use verification signals, not just confidenceIncorporate groundedness and consistency checksProvisional verdicts from automation, each decided by a person
Mitigation 8Monitor and test for misinformationLog claims, evidence and outcomes, and test adversarial scenariosThe edge-case set by failure type, and the before-and-after test
  • Both are voluntary guidance. The audit relates to these items or follows the suggested action; it is not a claim of compliance with either.

Questions buyers ask

7 questions

We already use an AI hallucination detector, or could label a sample ourselves. What does an audit add?

Keep the detector or checker: it proposes verdicts at scale. Published work notes detectors' performance varies across models and datasets, and that it is hard to tell which to rely on. The audit gives you a random sample of answers a person verified against your own sources, handed back so you can check your detector against it. Labelling a sample yourselves works too; the audit adds the sampling design, the interval, a separate edge-case set and a comparable before-and-after test.

Our logs contain personal data. Can you still measure them?

Yes. You send a redacted or pseudonymised export under our DPA; redaction removes identities, not the facts being checked. No client data goes to a third-party model or grading service unless agreed in writing. Your data is deleted 30 days after the before-and-after test, or 30 days after its window closes if it is not used, or on request.

How is a quote scoped?

Through a free 30-minute discovery call: what we audit, where the sample comes from, how large it should be, and whether a test setup exists for the before-and-after test. You get a written scope and a fixed fee within 2 business days of the call. The fee is agreed in writing before any work.

When can you start?

The earliest start date is in the written scope. The fixed fee does not change if the schedule slips on our side, and you can halt or end the engagement at any time.

What if the rate comes back low?

The report still states the coverage: what was sampled, how each answer was checked, and what was out of scope, so a low rate shows exactly what it covers. A failure type that never appears in the sample gets an upper bound rather than a zero, and the edge-case set still shows how each type fails when probed.

Can we share the results with our customers?

Your results and test set are yours; what you tell your customers about your own testing is your decision. The report is prepared for you only; no third party may rely on it, and we issue no letters, and we do not name ourselves to your customers without written consent. Only the real-traffic estimate may be described as a measured rate; edge-case results are failures found on a test set. Attestations are a separate service: Independent AI Assurance & Third-Party Testing.

Can you help fix what you find?

Fix guidance for each failure is always in the report. Hands-on help with the fixes is an optional follow-on, quoted separately. If Veriprajna authored any remediation, the report says so, and fixes we wrote are labelled in the before-and-after results.

Inside the audit: method, definitions and fixes

How the measurement works

Sampling. We draw conversations at random from a named log frame, for example all support conversations in a stated date range, and score one randomly chosen answer per conversation. Answers in one conversation can be correlated, so if more turns are scored, the interval is clustered by conversation. The rule: the interval is computed at the level that was sampled independently. Breakdowns by intent can be agreed in the scope; rare failure types are covered by the edge-case set.

Verdicts. Automation splits each answer into claims, retrieves candidate passages and proposes a provisional verdict for each claim. A person confirms or overturns every provisional verdict, and before confirming "unsupported" searches the full source set, not only the retrieved passages.

Rate. Answers with at least one claim unsupported by or contradicting your sources, over sampled answers, with a two-sided 95% interval. Omissions, and answers the assistant declined although your sources held the answer, are counted separately.

Type and stage. Failures are grouped by type, false commitments to a customer first. A probable stage, retrieval or generation, is assigned only where the passages the assistant actually retrieved for that turn are available: logged at the time, or replayed where the index is unchanged since the turn, and labelled as replayed.

Otherwise the stage is "not determinable from the export", and the fix order uses failure type alone. Problems in the source content itself, or in the scope and decline rules, need no retrieved passages.

Account-specific answers. Answers about one customer's account are checked against a record extract for the sampled conversations; without one, they are left out of the rate and counted as a coverage gap. Redaction removes identities, not the facts being checked.

Edge cases. Questions written to probe each failure type, reported as failures found among the questions written for that type. Inside the random sample, a type that never appears gets an upper bound, not a zero: for 0 failures in n answers, the one-sided upper bound at the same confidence is about 3 in n once n is 30 or more, and we compute the exact limit.

Before-and-after test. Two runs on the frozen question set, both generated in test. The before run is captured during sampling and verification, before any fix ships; the after run uses the fixed version.

Both use the same question text with the conversation so far, the same settings and the same pinned instrument, with three answers per question in each run unless the scope sets otherwise. We report the change question by question, with its interval. The logged production rate is never paired with a test run.

Pinned instrument. How claims are split changes the score, so the splitter, the models and their versions, the prompts and the labelling rules are recorded and reused; any change is stated, and the before run is re-scored.

Who labels. We decide every sampled answer. Your reviewer blind-labels a subset and may dispute; where labels differ, the settled label is applied and the report shows both rates. Labels judge support by your own source text, not professional correctness.

Method sources: Miller, "Adding Error Bars to Evals" for clustered errors, paired differences and repeated answers; Wanner and others, "A Closer Look at Claim Decomposition" on how claim splitting moves scores; Hanley and Lippman-Hand, "Interpreting zero numerators" on upper bounds when nothing fails.

What counts as a hallucination

NIST's Generative AI Profile calls it confabulation: "the production of confidently stated but erroneous or false content (known colloquially as 'hallucinations' or 'fabrications')". This audit uses a narrower test that can be checked: does your own source text support what the answer says? An answer can be true in general and still count as unsupported here, because your assistant's job is to answer from your sources.

The OWASP Top 10 for LLM Applications 2026 files this risk under LLM07:2026 Misinformation. One of its example scenarios is a customer-service agent that misreads a policy and approves a refund that violates the terms.

For an AI agent, a false answer is often about state: the agent reports something as done or true, such as "the refund was issued" or "the account is verified", that the system's own record does not show. We check those reports against the record, in a sandbox or dry run only.

What usually fixes each stage

The stage tells you where to look first.

  • Retrieval: the right passage was never retrieved. Fixes sit in chunking, indexing and search; building or rebuilding that layer is Enterprise RAG & Knowledge Assistants with Citations.
  • Generation: the passage was there and the answer still went beyond it. Fixes sit in instructions, answer format and a groundedness check on the answer; building that runtime check is Agent Guardrails & Human-Oversight Controls.
  • Source content: your own documents disagree or are out of date. The fix is in the documents.
  • Scope and decline rules: the assistant answered what it should have declined, or declined what your sources could answer. Fixes sit in the scope rules and the hand-off to a person.

Keeping the frozen questions as a check on every release, and calibrating automated judges, is LLM & Agent Evaluation.

Find out how often your assistant's answers go beyond your sources

Whether you run an assistant or agent, draft documents with AI, or publish AI-assisted content as an agency or publisher, start with a conversation about your sources.

  1. Email or WhatsApp us
  2. Reply within 1 business day
  3. Free 30-minute discovery call
  4. Written scope and fixed fee within 2 business days of the call