A routing decision you can reproduce yourself.
7 signals, a score out of 100, five tiers with published thresholds. No model call, nothing learned.
Show your working
The shipped selectModel() and the shipped price registry, running in your browser — the same function that decides where your real requests go.
138 characters · ~35 input tokens
- Message length+1550 to 199 characters
- Code0not present
- Analysis0not present
- Multi-step0not present
- Attachment0not present
- Creative writing+10matched “draft”
- Conversation depth010 messages or fewer
- Nano≤20
- Small≤40chosen
- Standard≤70
- Premium≤90above your plan
- Flagship≤100above your plan
- Tier
- Small
- Served by
- Claude Haiku 4.5
- Provider
- anthropic
- List price per M
- $1.00 in / $5.00 out
- Tokens (estimated)
- 35 in · 64 out
- Metered to you
- $0.000444
That is arithmetic for this one prompt against this one baseline, at published rates. It is not a measured result about anybody’s traffic, and we do not have one to quote.
This prompt scores low enough that every ceiling reaches the same tier, so every plan serves it identically. Raise the complexity and they diverge.
Token counts are estimated at ~4 characters each, output assumed at half the prompt; the ledger only ever records the provider’s reported usage. Prices are list prices verified 2026-09-08, metered at 1.25× list. The specification.
It comes back with the answer.
Every response from /v1/chat/completions carries what the router decided and what it cost. Every field it returns →
< HTTP/1.1 200 OK < content-type: application/json < x-lobstack-request-id: req_8f3a1c92e0b74d16 < x-lobstack-model: claude-haiku-4-5 < x-lobstack-tier: small < x-lobstack-complexity: 25 < x-lobstack-routed: true < x-lobstack-cost-usd: 0.000444 < x-lobstack-savings-usd: 0.000444 < x-lobstack-baseline-model: claude-sonnet-5 < x-lobstack-baseline-reason: plan_ceiling < x-lobstack-priced: true < x-lobstack-metered: true
On stream: true these headers go out before the provider has counted a token, so the same figures ride in the final frame instead, under x_lobstack.
What it is, and what it is not
A heuristic, and it says so
5 regular expressions, two length tests and some integer arithmetic. It does not read meaning and it does not predict whether a model will answer well; the value is that you can reproduce every decision.
What it does not do →No headline savings number
There is no “up to 80%” on this page. A saving is only meaningful against a model you would actually have used, so the demo names its baseline and computes one prompt. We have not priced production traffic at scale and will not quote a number we have not measured.
Lowest tier, not cheapest model
Nex picks the lowest tier that can handle the request, then a curated model within it — models in a tier are not interchangeable in quality, so it never quietly serves the cheapest.
Why not the cheapest →Honestly, about the field
Complexity routing is not a moat: three of the four gateways we track ship it, one of them free and open source. Where they differ is what comes back.
Ask your gateway why it picked that.
Every request comes back with its own receipt, and the Console keeps the ledger.