How to Measure AI Guardrail Coverage

Measure which production traffic actually ran your full validator chain — not just which rules exist on the agent. Full-chain %, gap lists, CSV export, and shadow vs coverage.

November 2, 2026

Related templates: Coverage Gap Remediation

A compliance lead asked a question that sounded simple: what percentage of production traffic actually ran the full validator chain on the refunds agent last month? The team had a policy PDF, a catalog screenshot, and shadow-mode logs showing would-block counts. What they did not have was a denominator that separated “rules exist on the agent” from “every configured rule executed on this request.” Partial chains — early exit, skipped shadow rules, or routes that bypassed the proxy — looked like healthy traffic in volume charts.

That gap is validation coverage. ValGuard records per-request attribution on persist: how many rules were configured, how many executed, whether shadow rules would have blocked, and which fields were healed. The Validation coverage dashboard turns those columns into an org-level full-chain %, a gap list, and a CSV export for compliance worksheets. This pillar defines the metric, what it is not, and how to improve coverage without blocking production on day one.

For proof that rules ran when they did execute, see how to prove AI guardrails actually executed. For rollout discipline before enforce, see shadow mode rollout and shadow mode is not coverage.

Coverage is not a rule catalog

Most governance programs stop at configuration: validators enabled in the editor, playbooks attached, CI tests green. Configuration proves intent. It does not prove that every production request hit every configured rule in order.

Three buckets show up in real deployments:

SignalMeaning
Full chainvalidation_rules_executed >= validation_rules_configured for requests with configured rules
Partial chainSome rules configured but not all executed (early exit, bypass path, engine skip)
No validatorsRequest reached the org with zero configured rules on that agent

Org full-chain % = full-chain requests ÷ requests with configured rules. It is intentionally not “validators ÷ all HTTP traffic.” High-traffic agents with no rules yet should not dilute the score; they show up under No validators so you can prioritize onboarding.

What the proxy writes (metadata only)

Migration 000105 adds coverage fields on each request row. The proxy fills them in RequestFinalize.WithCoverage — counts and paths, not prompt storage.

FieldRole
validation_rules_configuredRules attached to the agent snapshot for this request
validation_rules_executedRules that actually ran
shadow_would_blockShadow-mode signal: a block disposition would have fired
heal_field_pathsDeterministic repair touched these JSON paths before validation

Growth+ teams open Monitor → Validation coverage, pick a UTC window (7–90 days), and review summary cards, per-agent tables, and Coverage gaps (partial chains, no-validator traffic, heavy shadow signal). Export CSV uses the same query as the API (GET /api/validation-coverage?format=csv).

Shadow mode measures precision, not chain completeness

Shadow mode answers: “If this rule enforced, how often would it block?” It does not answer: “Did every configured rule run on this request?” An agent can run shadow validators on every call and still show partial chain if the engine short-circuited or a route skipped validation entirely.

Treat shadow would-block counts as rollout input, not as coverage. Pair them: high shadow signal on an agent that already has full chains is a candidate for simulate-then-enforce; high partial chains with low shadow counts is a wiring or catalog problem first.

Hands-on: close coverage gaps without blocking prod.

Close gaps in order (deterministic before enforce)

  1. Rank gaps — Sort the dashboard gap list by volume. Fix the top three agents before polishing long-tail routes.
  2. No validators — Confirm traffic uses X-VG-Agent (or playbook steps) so requests attach to an agent with a rule pack. New agents: coverage for new agent.
  3. Partial chain — Compare validator priority and early-exit behavior; look for mock mode, emergency bypass, or orchestration steps that call upstream without the proxy hop.
  4. Shadow-heavy agents — Run Simulate on candidate enforce rules (test policy before production), keep shadow for a window, then promote with shadow-to-enforce rollout.
  5. Export and review — Monthly CSV + human sign-off; playbook coverage gap remediation structures the 30-day ritual.

ValGuard prefers deterministic repair before re-ask when shape failures are fixable; healed paths appear in coverage export so you can see repair volume beside chain completeness.

Evals and offline benchmarks are not coverage

Monthly eval runs and golden datasets measure model quality on sampled inputs. Coverage measures production path completeness for configured rules. Both belong in a governance program; neither substitutes for the other. See evals vs validation in production.

Compliance language that survives review

Say:

  • “For requests with validators configured, X% executed the full chain in window Y.”
  • “These agent slugs had partial execution or no validators; remediation owners are listed in the export.”
  • “Shadow would-block counts estimate enforce impact before flip.”

Avoid:

  • “100% guarded” when the metric only covers requests with configured rules.
  • Equating shadow logs with full-chain coverage.
  • Claiming CSV export stores customer prompts (it stores agent-level aggregates and counts).

What this is not

  • Not payload retention for audit (use evidence envelopes and retention settings separately).
  • Not a Free-tier dashboard; coverage follows Growth+ analytics gating.
  • Not a substitute for proof-of-execution signatures when an auditor asks for per-request integrity.

Start measuring this week

Pick one production agent with real volume, open Validation coverage for seven days, export CSV, and walk the gap list with engineering and compliance in the same room. If full-chain % is already high, use shadow counts to plan enforce; if partial chains dominate, fix routing before debating rule semantics.

Product detail: observability · What's new · Tutorial: close coverage gaps.

Book a technical walkthrough with our team → Start free in shadow mode — no credit card →

Related articles

Shadow Mode Is Not Coverage

Shadow mode shows what would block before enforce. It does not prove every configured validator ran on every request. Use coverage attribution for chain completeness.

We Built ValGuard Because "It Usually Works" Isn't Good Enough

"It works most of the time" is how quiet production AI failures start. A 99.7% success rate is still ~30 failures a day at 10k requests — most shipped as HTTP 200. Here is the case for a deterministic validation layer: shadow mode first, enforce when the data backs it.

Why Hashing Tool Calls Won't Catch Your Agent's Loops

Hashing tool calls only catches exact repeats. Near-identical retries, busy-looking non-progress, and retries/fallbacks outside the counter all slip past it. Progress checks, an outside budget, and an end-state check stop them.