Trust contract
Onlyverdict=pass data is served. If a text unit fails verification, it’s excluded from API responses. You never see unverified or failed text units.
For arguments with mixed results: if 3 or more sibling sentences/claims pass, the review and fail siblings are pruned. Thesis and summary text is always served complete.
How verification works
Each text unit goes through three layers of verification:1. Evidence matching
Every text unit is paired with verbatim evidence passages from the source article. Evidence retrieval combines LLM extraction with dense semantic search to find the best supporting passages.2. Factual consistency scoring
Each text-evidence pair is scored using one of two modes, depending on the text unit type:| Mode | Used for | What it measures |
|---|---|---|
| nli | Claims | Strict entailment — does the evidence logically entail the claim? Claims make specific factual assertions, so they need a stricter standard. |
| regression | Sentences | Factual consistency — is the sentence consistent with the evidence? Sentences summarize or interpret, so the standard is whether they’re faithful to the source, not whether they’re directly entailed. |
verdict as the primary trust signal.
3. Deterministic safety checks
A battery of rule-based checks runs on every pair, regardless of score. These catch failure modes that neural scoring alone can miss — contradictions, quantity mismatches, entity anchoring failures, epistemic drift, and more. Any failed check prevents apass verdict until the issue is resolved — either through better evidence retrieval or human review.
Human review
Text units that pass automated verification are served directly. Units that fall into a gray zone are flagged for human review:- Verdict override — reviewers can approve or reject with an audit trail
- Evidence correction — reviewers can correct evidence passages, triggering automatic re-scoring
- Theme review — themes are reviewed and corrected
was_human_reviewed field in verification metadata indicates whether a human reviewed the text unit.
Verification detail levels
Default (compact)
Every text unit includes compact verification:Full detail
Addverification_detail=full for complete metadata including scoring breakdown, reason codes, and threshold policy:
| Field | Description |
|---|---|
scoring_method | The scoring pipeline used (versioned for reproducibility) |
scoring_components_ran | Which scoring components were executed |
scores.primary_score | The main factual consistency score (higher = more consistent with evidence) |
scores.entailment_forward | Does the evidence support the claim/sentence? (0–1) |
scores.contradiction | Does the evidence contradict the claim/sentence? (0–1, lower is better) |
score_computed | Whether each component produced a score (useful for debugging) |
reason_codes | Why this verdict was reached (e.g. HUMAN_OVERRIDE, RESCORED_AFTER_EDIT, AUTO_PASS) |
thresholds.threshold_set_id | Which scoring policy was applied (policies are versioned) |
Verification paths
| Path | Description |
|---|---|
auto_pass | Passed all automated checks (score + deterministic) |
human_override_pass | Flagged by automation, approved by human reviewer |