Latency Loom
Loading hourly results…
| Loading results… | |||||||||||||
E2E is the median wall-clock time to complete one fixed no-tool task through each vendor's subscription CLI — ready session to final result, process startup excluded, thinking time included. The task (longform-scheduler-v1) is a frozen ~600-word specification of a deterministic job scheduler answered entirely in one response: plan, full implementation, table-driven tests, and a design note. A structural contract rejects runs that skip the format; correctness is deliberately not graded, output length varies by model and is part of what the clock measures, and runs that touch tools or web search, hit an API retry, or get served by a different model are dropped. Every run is bounded by a 30-minute cap and the CLI's 64,000-output-token ceiling; a configuration that exhausts either bound on every attempt reads “no run finished” rather than hiding (Sonnet 5 at max effort still does — re-verified against the output ceiling in August 2026). Claude Code's measured window also includes the CLI's small concurrent Haiku utility call and result wrap-up (sub-second), which the Codex turn boundary does not have. The vs button on any measured row sets it as a baseline: every other row then also shows its median as a percentage faster or slower than that pick. Detail columns add stream rates from the separate fixed-passage protocol and the retired agentic-suite metrics. The passage task became template expansion (same ~5.8 KB SHA-pinned output, derived from a word table instead of echoed verbatim) in August 2026, after Fable 5's intentionally broad safeguards began refusing verbatim-echo instructions regardless of the text; even on the expansion task, Fable at max effort is refused pre-model (the CLI silently falls back to Opus 4.8, which the served-model check rejects) and Sonnet 5 at max effort refuses outright — so Fable's max-effort stream cell keeps its July verbatim-task measurement, and Sonnet's carries the final verbatim-task run from the same August morning. Token units are vendor-specific, so tokens-per-second ranks models only within one vendor. GPT-5.x counts tokens with OpenAI's public o200k_base encoding (~200k vocabulary); Anthropic's current tokenizer is proprietary and splits the same text about 1.7× finer (the current passage is 1,771 Claude tokens but 1,031 GPT tokens — a ratio independently corroborated for English prose, and larger than pre-2026 comparisons suggest because Anthropic documents that Claude 4.7-and-later models tokenize ~30% heavier than earlier Claude generations; every Claude model in this table is post-4.7, so its column stays internally comparable). Cross-vendor speed therefore uses only wall-clock seconds and bytes. OpenAI's subscription stream is delivery-paced at ~56 tok/s — transport policy, not decoder speed — while Claude Code passes model speed through. The GPT rows were measured through a paid ChatGPT plan that lapsed to the free tier on 2026-08-19, mid-campaign: the free-tier catalog carries no fast tier and drops Sol and GPT-5.4 (Sol is a paid-plan model per OpenAI's docs), so the fast and Sol rows are final measurements for this account, taken hours before the downgrade. One ambiguity is disclosed rather than resolved: on the 18th, fast requests were still served on the priority tier yet streamed at the normal ~56 tok/s (July: ~84) and finished the E2E task in statistically indistinguishable time — whether that pacing change was OpenAI policy or an artifact of the account's plan transition cannot be distinguished from this data.
What a step of reasoning costs
Median no-tool completion seconds at each reasoning effort. The first card compares every model in normal mode; each fast-capable model then gets its own fast-versus-normal card (green is fast, grey is normal). Each card owns its seconds scale.