The Sgraal preflight gate is deterministic and formally verified (Z3 SMT). The honest cost of running real formal verification inside the gate is ~170ms p50 single-request compute — measured on production, not asserted. In exchange you get a byte-identical, reproducible verdict (N=1,200 runs, zero drift) — something an LLM-judge cannot give at any speed.
~170ms
p50 single-request compute
~250ms
p95 single-request compute
~395ms
p99 single-request compute
N=50
samples / path · prod
Measured on production (Railway EU-West) via the server-side pipeline_ms timer — single-request compute for the full 85-module decision path; demo-key dry-run (excludes Redis/persistence), warmed, N=50/path. Fast-path (detection short-circuit) and full-decision are indistinguishable at this resolution. Network round-trip adds client-dependent transit. Production calibration pending paying-customer onboarding.
The deterministic preflight gate runs the full 85-module decision path and returns the verdict. The compute time is reported in the pipeline_ms field of every preflight response. Your agent waits for this plus network transit.
The detection short-circuit (obvious-attack fast-path) and the full-decision path measure the same at this resolution — the short-circuit gives no measurable compute speedup. There is no separate sub-pipeline that returns earlier.
A per-layer profile (scoring engine vs detection vs analytics) is not yet published — only the end-to-end pipeline_ms total (~170ms p50) is measured. The compact response profile (response_profile: "compact") skips heavy analytics modules but has not been separately benchmarked; treat any lower figure as unverified until measured.
At ~170ms single-request compute, the metered /v1/preflight is best at critical action checkpoints rather than on every inner-loop token. Throughput is single-process and scales with worker count (not yet benchmarked).
informational and reversible actions auto-select compact profile. irreversible and destructive get standard (full pipeline).
from sgraal import SgraalClient result = client.preflight(memory_state=[...]) print(result["_trace"]["duration_ms"]) # pipeline time in ms