Methodology

How Inferock measures failed large language model calls.

The method starts with what can be independently observed: request, response, timing, usage, cache, and charge evidence. Signals that need a baseline, threshold, or ground truth are labeled that way.

Standard version
Provisional defaults
Version details

Maintainer sign-off: July 20, 2026

Version identifier sla-defaults-2026-07-20-maintainer-signed

Measurement modes

  • Passive in path

    Signals derived from live requests, responses, usage fields, and Inferock timing.

  • Active probe

    Approved prompts or health checks used when a reference baseline is required.

  • Not observable

    Provider internal behavior and arbitrary factual truth need proxies, thresholds, or external ground truth.

Measurement principle

Start with observable evidence.

Inferock does not need to guess why a model failed to measure useful failure classes. It keeps the call envelope, provider outcome, timing, delivered content, usage, cache, and charge evidence together, then labels the confidence of each signal.

  1. Observe

    Capture the request path, response, timing, usage, and charge context in one event.

  2. Validate

    Run checks such as schema validation, output completion, timing thresholds, and billing comparisons.

  3. Bound

    Separate objective failures from thresholded signals and review only flags.

Provider boundary

Measured planes are explicit.

Apps send normal traffic to a local bench proxy, the adapter layer maps provider-specific evidence into canonical events, and only measured provider planes contribute receipt claims.

  1. Apps and SDKs

  2. Local bench proxy

  3. Adapter layer

  4. Provider planes

OpenAI plane
OpenAI models through the OpenAI routes.
Anthropic plane
Claude models through Anthropic Messages.
Gemini Developer API plane
Gemini models through GenerateContent.
OpenRouter pinned plane
Current pinned endpoints: meta-llama at parasail/fp8, deepseek at deepseek and deepinfra/fp4, qwen at deepinfra/fp8, mistral at mistral, moonshot/kimi at moonshotai/int4, and z-ai/glm at z-ai/fp8.

Measured today means the four public provider planes above. Additional providers are extensible-by-design until their adapter, cited pricing, fault taxonomy, SLA honesty lookup, and oracle-or-not-openable coverage gates exist.

Failure taxonomy

Three buckets keep the report honest.

  • Objective failures

    Eligible for Inferock Watch credit when evidenced

    Downtime, timeouts, empty output, truncated output, invalid structured output, invalid tool call arguments with a schema, and material billing or cache anomalies.

  • Threshold based signals

    Reported until a threshold is agreed

    Latency, model drift, over refusal, and quality regressions need a customer approved threshold, baseline, or service expectation before they can drive an Inferock Watch failure credit.

  • Review only flags

    Useful, but not automatic

    Factuality without ground truth, security and policy signals, ambiguous refusals, and provider internal behavior are surfaced for review with their limits visible.

Failure by failure

What can be observed, how it is measured, and where the boundary is.

Model drift

The same model name starts behaving differently from the approved behavior your workflow depends on.

What can be observed
Requested model, returned behavior, prompt family, schema results, refusal changes, length shifts, and probe outcomes.
How we measure
Active probes replay approved prompts against a trusted baseline, then compare semantic and objective checks under configured tolerances.
What the report shows
Baseline, breached threshold, affected workflow, sample evidence, and whether it is report only or threshold eligible.
Limits
Drift is not automatically bad. It needs an approved baseline, configured threshold, and repeated evidence before any Inferock Watch credit status applies.

Billing integrity

Usage or charge records can diverge from delivered output, request identity, or independently checkable token counts.

What can be observed
Output text, usage totals, request identifiers, observed charges, token fields, and provider specific billing metadata.
How we measure
Recount visible output when an independent tokenizer is available and reconcile repeated request identities against charge observations.
What the report shows
Mismatch type, event count, bill-bounded money loss where charge evidence supports it, provider evidence, and whether the row is objective, thresholded, or review only.
Limits
Provider fields differ. Some providers do not expose enough information for a tight independent recount, so those rows are labeled as limited checks.

Cache integrity

A prompt cache hit or cache eligible request should be reflected in observable usage and charge evidence.

What can be observed
Cache read and write fields, prompt length, provider usage metadata, observed charges, and repeated prefix evidence where available.
How we measure
Separate cached from uncached input when fields allow it, compute expected charge, and compare with observed charge records.
What the report shows
Cache anomaly type, event count, bill-bounded money loss where charge evidence supports it, separate invoice-check exposure where it does not, evidence fields, and remedy status.
Limits
Internal provider cache behavior is not observable. Inferock reports API visible cache evidence, not provider infrastructure internals.

Broken, truncated, or empty output

The response is malformed, cut off, missing, or unusable under a declared response contract.

What can be observed
Delivered content, finish reason, stream completion, output token usage, JSON parse result, and schema validation result.
How we measure
Parse response content, validate declared schemas, normalize truncation signals, and compare empty content against output usage.
What the report shows
Broken output, truncated output, or billed empty rows with event count, bill-bounded call-cost floor where the call fails the standard, and evidence.
Limits
The check proves structural failure. It does not prove whether a grammatically valid answer is factually correct.

Refusals

A model blocks a workflow instead of answering. Some refusals are appropriate, so refusal evidence must be separated from other output failures.

What can be observed
Provider refusal fields, content filter outcomes, refusal text, usage records, and configured business context.
How we measure
Normalize native refusal signals, classify text only refusals, and keep billed refusal rows separate from over refusal probes.
What the report shows
Refused and billed events, refusal rate, example evidence, and review status.
Limits
A refusal is not automatically wrong. Benign prompt thresholds and review labels matter before Inferock Watch credit status applies.

Downtime

The provider cannot serve the request, times out, drops the connection, or returns a provider side availability error.

What can be observed
Status codes, error class, timeout, transport failure, capacity signal, timing, and charge evidence.
How we measure
Classify provider 5xx errors, timeouts, transport failures, and provider capacity throttles while excluding customer auth and malformed request errors.
What the report shows
Downtime event count, affected provider path, time-loss duration, provider-recognized credit basis where verified, and objective failure status.
Limits
An unbilled failed attempt can still count as downtime, but it does not add cost to the loss report.

Latency

The model eventually answers, but the response arrives too late for the product workflow.

What can be observed
Gateway timing, upstream attempt duration, streaming milestones when available, model path, and usage evidence.
How we measure
Time the provider attempt and compare it with the configured threshold for that route, workload, or service expectation.
What the report shows
Slow call count, threshold, excess wait, editable dollar translation, and whether the threshold was configured.
Limits
Latency needs thresholds. Provider queues, batching, and infrastructure internals are inferred from observed timing, not directly seen.

Tool call validity

Agentic workflows depend on valid tool names, valid JSON, required fields, and schema compliant arguments.

What can be observed
Requested tool schema, emitted tool name, argument payload, JSON parse result, and schema validation result.
How we measure
When the customer provides a schema or contract, validate emitted tool call arguments against that contract before treating the output as usable.
What the report shows
Invalid tool call count, failed field or parse reason, bill-bounded money loss where applicable, and objective failure status.
Limits
Without a declared schema or objective contract, Inferock cannot label a tool argument as invalid with the same confidence.

Limits as trust copy

Some signals need more than a gateway can see.

  • Factuality needs ground truth

    A gateway cannot know arbitrary truth from request and response alone. Known answer checks need reference data.

  • Drift needs thresholds

    Behavioral change can be expected or useful. Inferock reports drift against approved baselines and configured thresholds.

  • Latency needs service expectations

    A slow call is only a service credit candidate when a threshold or service expectation has been set.

  • Provider fields differ

    Inferock records what is independently observable and labels limited checks where provider fields do not support a tighter measurement.

From measurement to report

Measured failure becomes evidence, category, count, spent dollars, bill-bounded money loss, time loss, exposure, and remedy status.

The Accountability page shows the full sample scorecard and explains how Inferock Watch differs from Inferock Serve.

Evidence
The call fields and checks that support the row.
Cost
Bill-bounded money loss (<= observed spend) for that failure type, plus separate invoice-check exposure where applicable.
Status
Reported, eligible for Inferock Watch failure credit, needs threshold, or needs review.
Next action
Engineering, product, and finance get a shared record to evaluate.

Run inference with accountability attached.

Sign up