# Time-To-First-Token (TTFT) Jitter Audit

Audit Time-To-First-Token (TTFT) variance, queuing delays, cold-start penalization, and tail latency distributions (p50, p95, p99) across serverless inference endpoints.

## Workflow

1. Ingest a series of measured request latency observations (milliseconds from HTTP request dispatch to receipt of the first SSE chunk).
2. Compute statistical percentiles:
   - Median TTFT ($p_{50}$)
   - Tail latency ($p_{95}$ and $p_{99}$)
   - Jitter ratio: $J = p_{99} / p_{50}$
3. Detect cold starts: Identify outliers exceeding $3 \times p_{50}$ indicating un-warmed GPU worker allocation.
4. Verify compliance against application SLA latency ceilings.

## Synthetic Input Format

JSON object with:
- `schemaVersion`: 1
- `endpoint`: string (e.g. "https://api.together.xyz/v1/chat/completions")
- `model`: string
- `samplesMs`: list of positive numbers (at least 5 samples)
- `assertions`:
  - `maxP50Ms`: optional number
  - `maxP95Ms`: optional number
  - `maxP99Ms`: optional number
  - `maxJitterRatio`: optional decimal string (e.g. "3.50")

## Exit Codes

- `0`: Valid observations and all latency assertions satisfied.
- `1`: SLA assertion failure (p50, p95, p99 or jitter ratio exceeded).
- `2`: Malformed input or path traversal violation.

## Verification

```sh
python3 scripts/check.py examples/synthetic.json
```
