Lanes, not a single dial
Routing is a table: work types down the side (Chat / Vision, Coding split into Brains and Muscle, and Image), three lanes across. Balanced is the everyday lane every seat gets. Complex is the higher tier a user reaches with the Complex toggle in the composer. Fallback is who answers when the pinned model cannot serve. Each cell either pins a specific model, or is left on Automatic and lets Auto resolve it live.
What Automatic actually does
Automatic is not a placeholder, it is a real, continuously-resolved pick. Leave Balanced on Automatic and Auto sends most everyday requests (questions, writing, summaries, routine coding) to whichever eligible model is currently strongest and healthy. Leave Complex on Automatic and Auto escalates there on its own whenever a request needs deep reasoning, long analysis, or a large refactor, no manual switch required. A healthy, enabled self-hosted model is eligible for Complex too, not just frontier hosted models. Because the resolution happens live, the row shows "Automatic (<model name>)" instead of a bare word, so an admin sees what Auto is currently doing, not a guess.
Precedence is fixed and always resolves the same way: an explicit pin on the cell wins first; if the cell is on Automatic, Auto’s live choice runs the request; if Auto genuinely has nothing eligible, the org default steps in as the last resort. Fallback only fires if whatever wins that chain becomes unreachable mid-flight.

Decisions on the record
The page carries a live decisions panel: how many routing decisions the engine made this week and how often its automatic choice agreed with what a pinned lane would have picked. When a model goes unhealthy, failover routes around it and the page says so in plain sight. Routing changes are configuration, so they land in the audit log like everything else.
The composer’s Balanced and Complex pills are the user-facing end of this table. If someone asks why a message got the model it did, the answer is on this page.