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

# Heretic Verdicts: Five Outcomes and the Conclusive Flag

> Heretic returns one of five verdicts for every session. Learn what each verdict means and how the conclusive flag affects your enforcement policy.

Heretic verdicts are binary rulings with attached evidence — not risk scores. Every session produces exactly one verdict, drawn from a fixed vocabulary of five values. Each verdict arrives alongside the evidence that produced it, so your application can make a transparent, auditable enforcement decision rather than guessing at an opaque probability. The `conclusive` boolean tells you whether the ruling meets the bar for hard enforcement.

## The Five Verdicts

<CardGroup cols={2}>
  <Card title="contradicted" icon="circle-xmark" iconType="solid" color="#ef4444">
    One or more evidence families directly contradict the client's declared claims. The `conclusive` flag is `true` when at least one **absolute** signal is present, or when two or more **composite** signals from *different* families corroborate each other. Act on this verdict.
  </Card>

  <Card title="refused" icon="ban" iconType="solid" color="#f97316">
    The client refused to complete one or more required measurements. Refusal is itself a strong signal — a benign browser has no reason to block a timing probe or suppress a TCP handshake. Treat refused sessions with the same suspicion as disputed.
  </Card>

  <Card title="disputed" icon="triangle-exclamation" iconType="solid" color="#eab308">
    Evidence points toward contradiction, but the signal weight does not yet meet the conclusive threshold. You have enough to challenge or rate-limit, but not enough to block outright.
  </Card>

  <Card title="uncontradicted" icon="circle-check" iconType="solid" color="#22c55e">
    All measured families align with the client's declared claims. No contradiction was detected across the signals Heretic was able to collect.
  </Card>

  <Card title="insufficient" icon="circle-question" iconType="solid" color="#94a3b8">
    Too few evidence families reported results to reach any verdict. This usually means the collector script ran on a severely restricted connection or was blocked before completing initialization.
  </Card>
</CardGroup>

<Note>
  **`uncontradicted` is not a guarantee of legitimacy.** It means Heretic found no contradiction among the signals it measured. A session in a geography with weak RTT coverage, or one where the collector could not run certain probes, may return `uncontradicted` without meaning the client is clean. Check `measured_families` in the response to understand what was actually tested.
</Note>

## The `conclusive` Boolean

The `conclusive` field is the single most important field in the verdict payload for enforcement purposes. It is `true` only when the ruling meets the threshold defined by the [ruling algebra](/concepts/signal-tiers):

* At least one **absolute** signal fired, **or**
* Two or more **composite** signals from *different* evidence families corroborate each other

When `conclusive` is `true`, Heretic has ruled out every plausible benign explanation for the contradiction. You can gate hard on this:

```json theme={null}
{
  "verdict": "contradicted",
  "conclusive": true,
  "contradicting_families": ["network-geometry", "transport-stack"]
}
```

When `conclusive` is `false` — which includes all `disputed` and `refused` verdicts — the evidence is meaningful but not definitive. Use it to trigger soft responses: a CAPTCHA challenge, elevated rate-limiting, or flagging the session for manual review.

<Tip>
  A practical policy split: `verdict === "contradicted" && conclusive === true` → block or reject. `verdict === "disputed" || (verdict === "contradicted" && !conclusive)` → challenge. `verdict === "uncontradicted"` → pass through. `verdict === "insufficient"` → optionally re-request the session or fail open depending on your risk tolerance.
</Tip>

### Hard vs. Soft Gates

| Scenario                             | Recommended response                    |
| ------------------------------------ | --------------------------------------- |
| `contradicted` + `conclusive: true`  | Block, reject, or terminate the session |
| `contradicted` + `conclusive: false` | Challenge (CAPTCHA, step-up auth)       |
| `refused`                            | Challenge; escalate on repeat           |
| `disputed`                           | Challenge or rate-limit                 |
| `uncontradicted`                     | Pass through                            |
| `insufficient`                       | Fail open or re-request                 |

## The `contradicting_families` Field

When the verdict is `contradicted` or `disputed`, the response includes a `contradicting_families` array listing every [evidence family](/concepts/evidence-families) that contributed a contradicting signal:

```json theme={null}
{
  "verdict": "contradicted",
  "conclusive": true,
  "contradicting_families": ["network-geometry", "transport-stack"],
  "signals": [
    {
      "id": "geo.rtt-below-vacuum",
      "tier": "composite",
      "headline": "RTT 2.1ms; light needs 27.4ms"
    },
    {
      "id": "stack.os-contradiction",
      "tier": "composite",
      "headline": "SYN by Linux 5.x; UA claims macOS 15"
    }
  ]
}
```

Use `contradicting_families` to:

* **Log specific evidence** in your audit trail rather than just a verdict string
* **Customize user-facing messaging** — a network-geometry contradiction implies a VPN or proxy, which may warrant a different prompt than a transport-stack OS contradiction
* **Route to the right review queue** — a `compute` contradiction may matter more in a transaction-fraud context than a `render` contradiction

<Tip>
  Read the full breakdown of what each family measures in [Evidence Families](/concepts/evidence-families).
</Tip>


## Related topics

- [Heretic Verdict Schema: Complete JSON Field Reference](/api/verdict-schema.md)
- [Signal Tiers, Ruling Algebra, and Enforcement Policy](/concepts/signal-tiers.md)
- [Heretic API: Base URL, Auth, and Error Codes Guide](/api/overview.md)
- [How Heretic Measures Browser Integrity with Physics](/how-it-works.md)
- [Heretic Dashboard: Manage Sites, Keys, and Verdicts](/dashboard/overview.md)
