> ## Documentation Index
> Fetch the complete documentation index at: https://telluvian.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Model zoo

> Published xPerf levels and rates for the models Model Select chooses between.

Source: https://telluvian.ai/docs/model-zoo

The zoo is the set of models [Model Select](https://telluvian.ai/docs/model-select.md) chooses between. This page
lists published **xPerf levels**. Active Model Select candidates can also use inferred
levels, so absence from this table does not necessarily make a model invalid
as a quality bar:

```json
{"xPerf": "anthropic/claude-sonnet-5"}
```

That reads as "at least as capable as this model", and it is the same as sending
the number in its xPerf column. Naming the model is usually better, because the
number moves when a model is re-measured and the name does not.

## Levels

A level measures a model against a fixed reference point. The reference is
`1.0` and it never moves, so a level means the same thing in a year as it does
today, and a bar you set now does not quietly tighten as better models arrive.

`1.0` is not a ceiling. The reference was set at the frontier of the day, which
does not impose a maximum: a model that beats the reference scores **above**
`1.0`.

> **A level is a general ranking, not a verdict on your prompt**
>
> A level measures a model's ability across a broad, hard benchmark. Your
> request is one prompt, and on an easy one a lower-ranked model often answers
> as well as the strongest models do. For that request it meets an `xPerf` above
> its own level, and routing will choose it. On a hard prompt the same model
> falls short and is passed over. See [how `xPerf` is
> applied](https://telluvian.ai/docs/model-select.md#xperf-how-good-the-answer-has-to-be).

The floor is `0.1`, which is also the smallest number `xPerf` accepts. Anything
below that is not a valid requested quality bar.

| Model | xPerf | Input / 1M | Output / 1M |
| --- | ---: | ---: | ---: |
| `anthropic/claude-fable-5-1` | 1.00 | $10.00 | $50.00 |
| `openai/gpt-6-astra` | 1.00 | $10.00 | $50.00 |
| `anthropic/claude-opus-5` | 0.96 | $5.00 | $25.00 |
| `meta/muse-spark-1.3` | 0.91 | $1.25 | $4.25 |
| `openai/gpt-5.6-sol` | 0.89 | $2.00 | $10.00 |
| `qwen/qwen3.8-max-0902` | 0.85 | $2.00 | $6.00 |
| `moonshotai/kimi-k3` | 0.83 | $3.00 | $15.00 |
| `x-ai/grok-4.6` | 0.83 | $2.00 | $6.00 |
| `openai/gpt-5.6-terra` | 0.79 | $2.00 | $12.00 |
| `z-ai/glm-5.3-flash` | 0.79 | $0.04 | $0.14 |
| `google/gemini-3.8-flash` | 0.77 | $0.75 | $3.75 |
| `anthropic/claude-sonnet-5` | 0.72 | $2.00 | $10.00 |
| `openai/gpt-5.6-luna` | 0.72 | $0.20 | $1.20 |
| `qwen/qwen3.8-27b` | 0.64 | $0.42 | $3.00 |
| `anthropic/claude-haiku-4-5-20251001` | 0.34 | $1.00 | $5.00 |
| `google/gemma-4-31b-it` | 0.28 | $0.09 | $0.34 |

16 models. Rates are live; levels were published 2026-10-06.

> **Each level is the model at its best**
>
> A reasoning model is not one point on this scale. The number above is its
> highest effort, which is what an `xPerf` naming it resolves to when you send
> no [`xPerfEffort`](https://telluvian.ai/docs/model-select.md#xperfeffort-which-setting-of-that-model-you-mean).
> The same model at `low` sits well below its row here. `claude-opus-5` runs
> from `0.75` at `low` to `0.96` at `max`.

## Models without a published level

The serving catalogue and the Model Select candidate set are different. A model
can be available for a direct completion without being a candidate of the active
Model Select checkpoint.

For `xPerf`, Model Select uses a published level when available; otherwise it
can use an inferred level for an active candidate. A model for which neither
is available returns `400`. `modelZoo` filters active Model Select candidates, not
the entire serving catalogue:

```json
{"modelZoo": "anthropic/*,openai/gpt-5*"}
```

A pattern matching no active candidate is rejected.

## Reading the table

Rates come from the gateway catalogue, as on [Pricing](https://telluvian.ai/docs/pricing.md). The
website caches catalogue data, so a recent update may not appear immediately.

The levels are a snapshot, and the date under the table says when it was taken.
They change only when a model is re-measured, which is rare, but it does mean a
level here can lag the one the API is using. Prices can also lag during cache revalidation.
