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

# The 5 Routing Tiers

> NANO, SIMPLE, LIGHT, STANDARD, COMPLEX explained.

# The 5 Routing Tiers

Every request gets classified into one of 5 tiers. Each tier maps to a group of models, ordered cheapest first with fallbacks built in.

<img src="https://mintcdn.com/routor/cIATklos4kQp2x0I/images/tiers-hero.svg?fit=max&auto=format&n=cIATklos4kQp2x0I&q=85&s=49375da72c970208cfec002321f37369" alt="The 5 routing tiers - from NANO to COMPLEX" width="1000" height="280" data-path="images/tiers-hero.svg" />

***

## The Tier Ladder

```mermaid theme={null}
graph LR
    NANO["NANO\nFree\nGreetings · acks"] --> SIMPLE["SIMPLE\nCheapest\nBasic facts"]
    SIMPLE --> LIGHT["LIGHT\nCheap\nExplanations · Q&A"]
    LIGHT --> STANDARD["STANDARD\nMid\nCode · analysis"]
    STANDARD --> COMPLEX["COMPLEX\nStrong\nExpert · architecture · reasoning"]

    style NANO fill:#0F1F14,stroke:#34D399,color:#34D399
    style SIMPLE fill:#0F1F14,stroke:#34D399,color:#34D399
    style LIGHT fill:#1F1A0F,stroke:#F59E0B,color:#F59E0B
    style STANDARD fill:#1A1020,stroke:#F97316,color:#F97316
    style COMPLEX fill:#20100F,stroke:#F87171,color:#F87171
```

| Tier         | What it handles                                                      | Typical models (2026)                          | Approx. cost |
| ------------ | -------------------------------------------------------------------- | ---------------------------------------------- | ------------ |
| **NANO**     | Greetings, acks, single words                                        | Gemini 3.1 Flash-Lite, GLM-4.7 Flash           | \~\$0.00001  |
| **SIMPLE**   | Basic facts, casual chat, trivial Q\&A                               | Qwen3.6-27B, Claude Haiku 4.5, GLM-5.2         | \~\$0.0002   |
| **LIGHT**    | Explanations, simple code, summaries                                 | Kimi K2.6, Gemini 3.5 Flash, DeepSeek V4 Flash | \~\$0.001    |
| **STANDARD** | Detailed coding, analysis, multi-step                                | Claude Sonnet 4.6, GPT-5.4, Mistral Large 3    | \~\$0.015    |
| **COMPLEX**  | Expert knowledge, architecture, long docs, math proofs, formal logic | Claude Opus 4.8, GPT-5.5, DeepSeek V4 Pro      | \~\$0.025    |

Reasoning is not a separate tier. It is a capability. Within COMPLEX, prompts that need chain-of-thought - proofs, derivations, formal logic - are matched to models built for that kind of work instead of a general-purpose flagship model.

***

## NANO

For greetings, acknowledgments, single-word replies.

Examples that hit NANO:

* "hi"
* "thanks"
* "ok"
* "sure"

This is the most common silent waste in AI apps. Paying Claude Opus prices to say "Hi there!" adds up fast.

***

## SIMPLE

For basic factual questions and casual conversation.

Examples:

* "What is the capital of France?"
* "How many days are in a leap year?"
* "Translate hello to Spanish"
* "What is 15% of 240?"

***

## LIGHT

For explanations, general Q\&A, and short creative tasks. This is also the default when Routor is unsure.

Examples:

* "Explain what a closure is in JavaScript"
* "Write a short bio for a product manager"
* "What is the difference between REST and GraphQL?"
* "Fix the typo in this sentence"

***

## STANDARD

For detailed technical work, multi-step analysis, and production code tasks.

Examples:

* "Refactor this auth middleware to use JWT"
* "Analyze this CSV and identify trends"
* "Write a unit test suite for this function"
* "Compare these two system designs and recommend one"

***

## COMPLEX

For expert-level tasks, long documents, architectural decisions, and formal reasoning.

Examples:

* "Review this 5,000-word technical specification"
* "Design a microservice architecture for a fintech platform"
* "Write a board-level executive summary of this report"
* "Audit this codebase for security vulnerabilities"
* "Prove that the square root of 2 is irrational"
* "Derive the time complexity of this algorithm"

Within this tier, prompts that are specifically mathematical or logic-heavy get matched to a model trained for chain-of-thought work rather than a general-purpose flagship. DeepSeek V4 Pro often outperforms general models on proofs and derivations at a fraction of the cost - currently $0.44 input / $0.87 output per million tokens versus \$5 or more for frontier models.

***

## How the Tier Is Assigned

Routor analyzes your prompt and assigns the tier that best fits what the request actually needs. It scores the prompt across 15 weighted dimensions and maps the aggregate score to a tier using configured boundaries, producing a confidence score alongside the tier.

The tier is always determined by where the score lands relative to the boundaries. Prompts that sit near a boundary get a lower confidence, but the tier is still assigned directly - there is no separate fallback path. Neutral, ambiguous prompts tend to land at LIGHT because that is where the middle boundary sits.

```mermaid theme={null}
flowchart TD
    P["Your Prompt"] --> ANALYZE["Routor analyzes the prompt"]
    ANALYZE --> CONF{"Clear signal?"}
    CONF -->|"Yes"| TIER["Assign tier"]
    CONF -->|"No - ambiguous"| DEF["Default to LIGHT\nsafe middle ground"]

    TIER --> N["NANO"]
    TIER --> S["SIMPLE"]
    TIER --> L["LIGHT"]
    TIER --> ST["STANDARD"]
    TIER --> C["COMPLEX"]

    DEF --> L

    N & S & L & ST & C --> FLOOR{"Tier floor set?"}
    FLOOR -->|"Yes - bump up"| OUT["Final tier · model selection"]
    FLOOR -->|"No"| OUT
```

***

## Controlling the Tier

You can constrain which tiers Routor uses without touching your routing logic. Valid tier values, cheapest to most capable: `NANO` → `SIMPLE` → `LIGHT` → `STANDARD` → `COMPLEX`.

**Set a floor - never go below this tier:**

```json theme={null}
{
  "model": "auto",
  "routor_tier_floor": "STANDARD"
}
```

**Set a ceiling - never go above this tier:**

```json theme={null}
{
  "model": "auto",
  "routor_tier_ceiling": "LIGHT"
}
```

Floor and ceiling combine: `routor_tier_floor: "LIGHT"` + `routor_tier_ceiling: "STANDARD"` restricts routing to LIGHT or STANDARD only. A floor also merges with the quality sliders (`routor_code_quality` / `routor_chat_quality`) — the higher of the two floors wins.

**Force a specific tier - skip classification:**

```json theme={null}
{
  "model": "auto",
  "routor_profile": "tier",
  "routor_tier": "COMPLEX"
}
```

Forcing a tier also lowers the routing margin from 10% to 8%, since Routor skips classification.

**Full request with curl:**

```bash theme={null}
curl https://api.routor.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-routor-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "auto",
    "routor_profile": "tier",
    "routor_tier": "LIGHT",
    "messages": [{ "role": "user", "content": "Summarize this paragraph..." }]
  }'
```

You can also save these constraints in a [Routing Profile](playground/create-profile.md) so they apply to every request from a given key, with no code change needed. Request-body parameters override the profile's saved values.
