Skip to content
Lobstack API· Nex, scorer ti-1.0.0

A routing decision you can reproduce yourself.

7 signals, a score out of 100, five tiers with published thresholds. No model call, nothing learned.


Runs in this tab · no key · no token spent

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.

The request

138 characters · ~35 input tokens

Signals2 of 7 fired
  • Message length+15
    50 to 199 characters
  • Code0
    not present
  • Analysis0
    not present
  • Multi-step0
    not present
  • Attachment0
    not present
  • Creative writing+10
    matched “draft”
  • Conversation depth0
    10 messages or fewer
Sum of the signals25/100
The decisionSimple query → small tier
Nano20
Small40
Standard70
Premium90
Flagship100
25
  • 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
Against the priciest model your plan allows
Claude Sonnet 5$0.000888
Claude Haiku 4.5$0.000444
Difference$0.000444 (50%)

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.

The same prompt, on each ceilingauto · score 25
FreeCeiling StandardClaude Haiku 4.5$0.000444
Developer, Studio, ScaleCeiling FlagshipClaude Haiku 4.5$0.000444

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.

The receipt

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.

The fine print, in large print

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 →
Verified 2026-09-10

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.