> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qedproof.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Verdicts

> The five outcomes QED Proof can reach when it checks a claim against its destination.

export const VerdictTable = () => <table>
    <thead>
      <tr>
        <th>Verdict</th>
        <th>Meaning</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><code>verified</code></td>
        <td>The destination shows the claimed outcome, matching every field the profile requires, observed no later than <code>claimed_at</code> plus tolerance.</td>
      </tr>
      <tr>
        <td><code>late</code></td>
        <td>The outcome is present and matches, but it appeared after <code>claimed_at</code> plus tolerance (and before the deadline).</td>
      </tr>
      <tr>
        <td><code>mismatch</code></td>
        <td>The destination shows an outcome for the target, but a required field differs — for example, the wrong branch.</td>
      </tr>
      <tr>
        <td><code>failed</code></td>
        <td>The verifier could read the destination, and the outcome was not present by the deadline.</td>
      </tr>
      <tr>
        <td><code>unverifiable</code></td>
        <td>The verifier could not determine the outcome — an error, timeout, missing permission, or ambiguous claim. Never evidence for or against the agent.</td>
      </tr>
    </tbody>
  </table>;

Every receipt carries exactly one verdict, decided by comparing the claim against what the verifier actually
observed at the destination.

<VerdictTable />

## Rules QED Proof follows

* **A verifier fails toward `unverifiable`, never toward `verified`.** Any error, timeout, missing permission, or
  rate limit yields `unverifiable` — never a false `verified`.
* **`failed` and `mismatch` require a successful read of the destination.** If the destination couldn't be read at
  all, the verdict is `unverifiable`, not `failed`. An agent is never penalized for a verifier's blind spot.
* **Verdicts are decided deterministically** from the claim, the observed facts, and the action's match rules — not
  by a language model's judgment call.
* Only `verified`, `late`, `mismatch`, and `failed` count toward an agent's track record. `unverifiable` never
  counts for or against it.

## Reason codes

Every verdict except `verified` is usually paired with a `reason_code` explaining why. See
[reason codes](/api-reference/reason-codes) for the full list.
