Skip to content

Cost · For developers · MIT

Pick a model tier, not a flagship

Choose the cheapest model tier that can actually do the task instead of defaulting to a flagship, and verify the choice before spending on it.

Installing a skill

When an agent loads it

Use when selecting a model for a feature or agent, when one model dominates a bill, or when asked to cut inference cost without losing quality.

Inside the file

  • The five tiers
  • What each tier is actually for
  • The procedure
  • Verify before you spend
  • The ceiling is a structural cap
  • Do not

The file

v1.0.0
# In Lobstack: Skills › Add a skill, then paste the file or drop the folder
# In Claude Code:
mkdir -p .claude/skills/lobstack-model-tier
# paste SKILL.md into .claude/skills/lobstack-model-tier/SKILL.md
lobstack-model-tier/SKILL.md142 lines
---name: lobstack-model-tierdescription: "Choose the cheapest model tier that can actually do the task instead of defaulting to a flagship, and verify the choice before spending on it. Use when selecting a model for a feature or agent, when one model dominates a bill, or when asked to cut inference cost without losing quality."license: MITmetadata:  title: "Pick a model tier, not a flagship"  version: 1.0.0  author: lobstack  category: cost  tags: [cost, routing, models, gateway]--- # Pick a model tier, not a flagship Defaulting to the best available model is the most common and most expensivedecision in an LLM codebase, and it is almost never a decision — it is theexample from a quickstart, left in. deepseek-v4-flash costs $0.27/$1.1 per million tokens in/out. claude-fable-5-1 costs $10/$50. That is roughly 44× on the same tokens, which is why "which model" is a cost decision before it is a quality one. Prices last checked against each provider's own page on 2026-09-08. ## The five tiers Lobstack groups every model into five capability tiers and routes "auto"requests to the cheapest tier that can handle the request. The thresholds and thelead model of each tier are the router's actual configuration: | tier | complexity | what `auto` serves | $/Mtok in/out | relative cost || --- | --- | --- | --- | --- || nano | ≤ 20 | gemini-3.1-flash-lite | $0.25/$1.5 | 0.10× || small | ≤ 40 | claude-haiku-4-5 | $1/$5 | 0.30× || standard | ≤ 70 | claude-sonnet-5 | $2/$10 | 0.67× || premium | ≤ 90 | gemini-3.1-pro | $2/$12 | 2.00× || flagship | ≤ 100 | claude-opus-5 | $5/$25 | 5.00× | complexity is a heuristic score from 0–100 over the prompt: length, whether itcontains code, whether it asks for multiple steps, analysis or creative writing,and how long the conversation already is. It is a heuristic and it is worthknowing that, but it is the same one the live path uses — not an approximation ofit. ## What each tier is actually for - nano — classification, routing, extraction, yes/no, tagging, short  rewrites, "is this spam". Anything where the answer is short and the judgement  is shallow. If you are calling a model in a loop over rows, start here.- small — summarisation, straightforward Q&A over supplied context, format  conversion, commit messages, simple tool selection. The workhorse for anything  where the context does the work and the model only has to be careful.- standard — most user-facing chat, most agent turns, code that fits in a  file, multi-step tool use with a clear plan. This is the default you should be  arguing yourself *up* from, not down to.- premium — genuine reasoning over a large context, hard debugging, design  work with real trade-offs, long multi-file changes.- flagship — the tasks where a wrong answer costs more than the call. Use it  deliberately, per call site, and be able to name why. ## The procedure 1. Write the task down in one sentence. If the sentence contains "classify",   "extract", "label", "route" or "reformat", you are in nano or small and you are   done.2. Ask what a wrong answer costs. Cheap to detect and cheap to fix (a draft a   human reads, a retry, a suggestion) argues down a tier. Expensive and silent   (a migration, a payment, a customer-visible claim) argues up.3. Try the cheap tier on twenty real inputs, not on the one you invented.   Cheap models fail differently: they do not produce slightly worse prose, they   miss an instruction or drop a field. Diff the outputs on the failure you care   about, not on taste.4. Set a ceiling rather than a model wherever you can. "auto" plus a plan   ceiling means the easy 80% of traffic lands cheap without anyone tuning   anything, and hard requests still reach a capable model.5. Spend the saving on the prompt. A cheaper model with an explicit,   well-structured prompt beats a flagship on a vague one, and costs a twentieth   as much. See cost-aware-system-prompts. ## Verify before you spend POST /api/gateway/v1/route-preview answers "what would the router do withthis?" without running inference. It is unauthenticated, writes nothing, and usesthe same selectModel() and the same price registry the live path uses — so theanswer is the decision, not a simulation of it. ```bashcurl -s https://www.lobstack.ai/api/gateway/v1/route-preview \  -H 'Content-Type: application/json' \  -d '{"prompt":"Label this ticket: billing, bug, or feature request.\n\n…",       "requested_model":"claude-opus-5",       "plan_tier":"developer",       "expected_output_tokens":8}'``` ```json{  "object": "routing_preview",  "complexity": 12,  "tier": "nano",  "routed": true,  "reason": "Trivial query → nano tier",  "model": { "key": "gemini-3.1-flash-lite", "provider": "google",             "price_per_mtok": { "input": 0.25, "output": 1.5 } },  "token_estimate": { "input": 31, "output": 8, "estimated": true },  "cost_usd": 0.0000198,  "baseline": { "model": "claude-opus-5", "cost_usd": 0.000355, "saving_usd": 0.000335 }}``` Two honesty notes that matter when you quote these numbers: - token_estimate.estimated is true. It is roughly four characters per token,  and the output length is unknowable before generation — pass  expected_output_tokens when you know your own shape. The billed figure always  comes from the provider's usage block on the real request.- baseline is null on an "auto" request. There is nothing to compare  against when nobody named a model, and inventing a flagship comparison is how  every savings claim in this category gets manufactured. ## The ceiling is a structural cap Plans carry a tier ceiling, and the router never exceeds it — so cost control isa property of the configuration rather than something to catch in review: | plan | price | meter | included | tier ceiling || --- | --- | --- | --- | --- || Free | $0/mo | spend | $1 of credit a week | standard || BYOK | $19/mo | requests | 100,000 requests | flagship || Developer | $29/mo | spend | $10 of model spend | flagship || Agency | $99/mo | spend | $35 of model spend | flagship || Scale | $299/mo | spend | $120 of model spend | flagship | The effective ceiling is the lower of the model you asked for and your plan's.Naming a nano model on a flagship plan caps you at nano, which is the correctbehaviour and occasionally a surprise. ## Do not - Do not pick a model because it was in the example you copied.- Do not benchmark on one hand-written input.- Do not use "auto" and then quote a saving against a flagship. Nobody asked  for the flagship; see lobstack-receipts, rule 2.- Do not assume cheap means fast or dear means slow. They are unrelated; measure  p95 separately.

More for developers

5
  • Cost

    Read a Lobstack receipt

    Read the receipt Lobstack returns on every model call — cost_usd, savings_usd, baseline_reason — and report cost from it instead of estimating.

  • Cost

    Keep an agent inside a budget

    Hold an agent, job or run inside a hard dollar budget using the per-call cost the Gateway returns, and handle the 402 when an allowance runs out.

  • Cost

    Write a cost-aware system prompt

    Write or review a system prompt that does not quietly multiply the bill — bounded output, no re-sent bulk, tool schemas counted as the input tokens they are.

  • Migration

    Migrate an SDK call to the Gateway

    Move existing OpenAI or Anthropic SDK code onto the Lobstack Gateway by changing the base URL and the key, and verify it actually routed.

  • Observability

    Audit a codebase for unmetered model calls

    Find model calls that bypass the gateway and therefore appear on no bill anyone reads, and detect the opposite fault of counting one call twice.

All developer skills →