Someone asked us this week to factor Grok into T1. Best of all worlds, they said. So we did. Grok now sits in the failover chain for T1 Flow and T1 Max. Not the primary. The distinction is the whole point of this post.
If you already use T1, nothing changes for you. Every dropdown still shows the same four names. Every request still lands where it was landing yesterday. The only thing that shifts is what happens when the tier's first choice hiccups.
The old failover chain
Every T1 tier has a primary and a fallback list. When the primary rate limits or throws a 5xx, the gateway walks the list in order and tries the next one. Same request, same tokens, same wallet debit. You never see the swap.
Before this week, Flow's chain read: Sonnet 5, then GPT-4.1, then Kimi K2. Max's chain read: Opus 4-8, then Sonnet 5, then Kimi K3, then GPT-4.1. Both looked reasonable on paper. In production they had a subtle problem.
Anthropic and OpenAI often have correlated incidents. When one region gets slow, the other one tends to get slow too, because they run on overlapping cloud infrastructure and both get hit by the same viral moment on Twitter. Kimi was our best diversity play, but it also runs on OpenRouter's aggregation layer, so a bad afternoon at OpenRouter took out two links of the chain at once.
The chain was not as diverse as it looked.
What Grok actually gets us
xAI runs its own inference stack. Different training run, different fine tuning, different corporate ownership, different data center footprint. When Anthropic is having a bad afternoon, xAI usually is not, and the reverse holds too. That is the whole reason to add it. Not because Grok is smarter than Opus, but because Grok fails at different times than Opus.
Flow now reads: Sonnet 5, then Grok-4-fast, then GPT-4.1, then Kimi K2. Max now reads: Opus 4-8, then Sonnet 5, then Grok-4, then Kimi K3, then GPT-4.1. Two independent failure modes have to line up before the request fails, not one.
That is what the "best of all worlds" ask actually meant, once you unpacked it. Not "use every model at once". Not "let the user pick". Just "when the tier's first choice cannot answer, have a next choice that fails at a different time".
Why Grok is not the primary
The obvious next question is: if Grok is good enough to sit in the Max fallback chain, why not put it at the top?
Because Opus 4-8 still wins on the quality axis this tier is measured on. Grok is genuinely great at web adjacent reasoning and coding, but the T1 Max ranking is dominated by long context reasoning, extended thinking, tool use in agent loops, and PDF handling. Opus is a strict superset of every model in the chain on those axes. It costs more per token than Grok-4, but Max users pick Max because they want the best answer, not the cheapest one.
Grok being cheaper is only relevant when Opus is unavailable. That is exactly what a fallback slot is for.
Same logic for Flow. Sonnet 5 is the tier primary because Sonnet is what Flow is optimised for. Grok-4-fast in the fallback slot means that when Sonnet is slow, you get an answer at a comparable quality bar rather than dropping straight to GPT-4.1 (a great model, but not the same tuning). The primary stays the best choice; the fallback stops being embarrassing.
One thing users can do explicitly
Type grok-4 into your editor's model picker and T1 routes it to Max. Type grok-4-fast or grok-code-fast-1 and it routes to Flow. Same aliases work in Cursor, Continue, Cline, Zed, Windsurf, and any other editor that reads OpenRouter shape model names.
The routing is not because we are surfacing Grok as its own product. It is because a few developers already had grok-4 as their editor default and were confused when it showed up as an unknown model. Now it resolves to a real tier and their existing workflow keeps working.
Under the hood the resolver has to be a little careful. grok-4 is a substring of grok-4-fast, so the usual "does this name contain a Max keyword" check cannot tell them apart. There is a dedicated block that lists the frontier variants (grok-4, grok-4-heavy) versus the fast variants (grok-4-fast, grok-code-*, grok-3, grok-2) and returns the right tier explicitly. Bare grok defaults to Flow. Full test coverage, no substring collision.
The general principle
Provider diversity is a reliability lever, not a marketing lever. Every time you add a model to a tier there is a temptation to advertise it. "Now with Grok!" on the docs page. Chip on the pricing page. Announcement in the changelog.
Every one of those makes the product surface louder without making the product better. Users chose a tier, not a vendor. If Grok never gets used because Opus is always up, we did our job. If Grok gets used a lot, that means Anthropic is having a bad month, and we still did our job. Either way the user gets an answer, and the model name at the bottom of the reply is honest about what actually ran.
That is what we mean when we say T1 is a routing layer, not a wrapper. The vendor mix is our problem, not yours.
