configuration
Verdict Thresholds
Perathos aggregates seven verifier scores into a single confidence score, then maps that score to a verdict using configurable thresholds. Deterministic verifier failures bypass thresholds entirely — they always BLOCK.
How aggregation works
The confidence score is a weighted average of all non-SKIP verifier scores. Verifiers that have no applicable claims (e.g., no mathematical expressions for the Symbolic Solver) return SKIP and are excluded from the weighted average. Weights are normalised to sum to 1.0 across non-SKIP verifiers at aggregation time — the per-verifier defaults below are raw priors, not absolute contributions.
# Weights are renormalised across non-SKIP verifiers at aggregation time.
confidence = sum(verifier.score * verifier.weight for verifier in non_skip_verifiers)
/ sum(verifier.weight for verifier in non_skip_verifiers)
# Then:
if any deterministic verifier returned BLOCK:
verdict = "BLOCK" # bypasses threshold — no confidence score override
elif confidence >= flag_threshold:
verdict = "PASS"
elif confidence >= block_threshold:
verdict = "FLAG"
else:
verdict = "BLOCK"Default thresholds
| Verdict | Condition | Config key |
|---|---|---|
| PASS | confidence ≥ 0.80 | flag_below: 0.80 |
| FLAG | 0.50 ≤ confidence < 0.80 | block_below: 0.50 |
| BLOCK | confidence < 0.50, or any deterministic BLOCK | — |
Industry guidance
Recommended threshold ranges by industry. Tighter thresholds increase blocks and flags; looser thresholds allow more responses through with lower confidence.
| Industry | flag_below | block_below | Rationale |
|---|---|---|---|
| Healthcare / Clinical | 0.95 | 0.85 | Clinical decisions require high confidence. Err toward FLAG for human review. |
| Financial Services | 0.90 | 0.70 | Regulatory citations and numerical claims carry high liability. |
| Legal | 0.90 | 0.70 | Case law and statutory references must be current and accurate. |
| Enterprise General | 0.80 | 0.50 | Default settings. Balanced for general AI-assisted workflows. |
| Internal Tools / Low-stakes | 0.70 | 0.40 | Higher tolerance acceptable for non-customer-facing, low-risk queries. |
Configuration
Global (dashboard or API)
Set default thresholds for your entire account via the dashboard or the configuration API. These apply to all requests that do not include per-request overrides.
PUT https://api.perathos.com/v1/config/thresholds
Authorization: Bearer pk_live_...
Content-Type: application/json
{
"flag_below": 0.90,
"block_below": 0.70
}Per-request (headers)
POST /v1/chat/completions X-VRL-Flag-Below: 0.90 X-VRL-Block-Below: 0.70 # Per-request values override account defaults for this call only
Per-request (body extension)
{
"model": "gpt-4o",
"messages": [...],
"perathos": {
"flag_below": 0.90,
"block_below": 0.70
}
}Zero-tolerance overrides
Certain verifiers can be configured to always BLOCK regardless of the confidence score. The Symbolic Solver is zero-tolerance by default — any mathematical error is always a BLOCK. You can apply zero-tolerance to other verifiers.
PUT https://api.perathos.com/v1/config/verifiers
Authorization: Bearer pk_live_...
{
"verifiers": {
"symbolic_solver": { "zero_tolerance": true }, // default: true
"knowledge_graph": { "zero_tolerance": true }, // strict regulatory mode
"schema_validator": { "zero_tolerance": false },
"hallucination_detector": { "zero_tolerance": false }
}
}Per-verifier weights
Default raw priors. Weights are renormalised to sum to 1.0 across non-SKIP verifiers at aggregation time, so individual values represent relative priority rather than absolute contribution. Adjust weights to prioritise the verifiers most relevant to your domain — you can specify any relative values.
| Verifier | Default weight | Type |
|---|---|---|
| model_fingerprinter | 0.10 | Deterministic |
| cross_examiner | 0.20 | LLM |
| hallucination_detector | 0.18 | LLM |
| symbolic_solver | 0.50 (zero-tolerance) | Deterministic |
| knowledge_graph | 0.22 | Deterministic |
| temporal_consistency | 0.12 | Hybrid |
| schema_validator | 0.18 | Hybrid |
PUT https://api.perathos.com/v1/config/verifiers
{
"verifiers": {
"knowledge_graph": { "weight": 0.35 }, // increase for regulatory domains
"hallucination_detector": { "weight": 0.10 }, // reduce if domain is narrow/factual
"temporal_consistency": { "weight": 0.20 } // increase for fast-moving regulations
// unspecified verifiers keep defaults; weights are renormalised
}
}