Is my LLM slow?

The same prompt, sent to every frontier model, every six hours. This tracks how long each one takes to answer.

Checking…

Loading…

The evidence
Range

Range scopes the cards and table below. The verdict above always reflects each model’s most recent run, whatever range is selected.

Model by model

One card per model: its latest response time, how that compares with its own recent runs, and every run in the selected range. Typical is the median of that model’s earlier runs in the range. Every card shares the same axes, and the faint grey lines behind each trace are the other models, for scale.

The y axis is linear by default, so the gaps read at face value. Switch it to log when one spike flattens everything else — responses range from seconds to minutes, and a linear axis gives the tallest run all the room. Switch to vs. its own normal to plot each model as a percentage of its own median, which is how the verdict is decided. A hollow dot means the response came back empty or was refused.

Anatomy of a run

The latest run from each model, split three ways: time on the wire (transport), time spent thinking before a single word appears, and time spent writing. Thinking is the part you sit through in silence, and on most reasoning models it is the largest slice.

Some providers send nothing at all until reasoning has finished, which makes transport and thinking arrive as one indistinguishable block. Those models are marked not separable rather than being shown with a thinking time of zero — the silence is real either way, we just cannot say where it went.

What the clock covers network provider queue ▼ first byte back — measured reasoning (silent) writing transport thinking — silent total time — the headline clock starts first visible word clock stops

The clock is split three ways. Time up to the first byte of the response covers network round-trip, TLS, and any queueing before the provider starts replying. From there to the first visible word, the model is thinking. After that it is writing.

Network transit and provider queueing cannot be separated inside that first segment, since both finish before the server sends anything. From a single region it stays a small and fairly stable slice.

Transport Thinking (striped, model colour) Silent, not separable Writing (model colour)
Method & reference

How this works

Every model gets the same prompt on a schedule, and we time the reply. Nothing is executed and nothing is graded.

  • One fixed prompt. A hash of it () is stored on every run, and the charts mark the point where it changes, so an edit shows up as a break rather than passing for a change in speed.
  • Settings are pinned. Reasoning effort and thinking mode are fixed per model and recorded on each run. Both affect latency.
  • Nothing is smoothed. No averaging, no adjusting for length. A model that wrote more took longer.

What each number means

Total time
Request sent to response finished. Includes however much the model chose to write. We do not adjust for length.
First token
How long until the first visible word. This includes reasoning time, so a model that thinks before answering stays silent for all of it.
What we don't measure
Correctness, quality, or capability. Nothing runs the code. The health flag separates a slow run from a refused or empty one. It is not a grade.

All models

Medians across the selected range. Two caveats: rate is not generation speed for models that reason silently and then send the answer at once, and output tokens are not comparable between Opus 4.6 and 4.7+ (different tokenizers). Every model runs at medium effort with adaptive thinking.

Currently tracking Claude Opus 5, Claude Fable 5 and Claude Sonnet 5 from Anthropic, alongside the older Claude Opus 4.8, 4.7 and 4.6; GPT-5.6 Sol and GPT-5.6 Terra from OpenAI; and Grok 4.5 from xAI.

Ask this from your agent

These measurements are served over MCP, so a coding agent can ask which model is answering fastest right now instead of guessing. It is a hosted endpoint — point a client at the URL and it works.

Endpoint — nothing to install, no key

https://mcp.ismyllmslow.com/mcp

In Claude Code

claude mcp add --transport http slow https://mcp.ismyllmslow.com/mcp

Or in a client config file

{ "mcpServers": {
    "slow": { "url": "https://mcp.ismyllmslow.com/mcp" } } }

Four tools

fastest_modelRanked fastest-first, by total or first_token.
list_modelsEvery model’s latency profile over a window.
model_statusOne model, including whether it is erroring or degraded.
measurement_methodHow the numbers are made, and what they cannot tell you.

Fastest is not best. This measures latency on one fixed prompt and says nothing about whether a model can do your task. Routing hard work to whatever tops the ranking is a misuse of it. Every tool response repeats this inline, because a calling agent sees the output and not this page.