Skip to content
Official · LobstackCostv1.0.0MIT

Pick a model tier, not a flagship

lobstack-model-tier

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.

#cost#routing#models#gateway

Install

Copy the file and save it at the path below, then start a new session. Any agent that reads a skills directory will pick it up; the path shown is Claude Code's. Delete the folder to uninstall.

mkdir -p .claude/skills/lobstack-model-tier
# paste SKILL.md into .claude/skills/lobstack-model-tier/SKILL.md

No package, no registry client, no telemetry. 142 lines of text, licensed MIT.


What the agent matches on

Frontmatter

An agent decides whether to load a skill from name and description alone — it does not read the body first. That is why the description says when to use this, not only what it is.

---
name: lobstack-model-tier
description: "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: MIT
metadata:
  title: "Pick a model tier, not a flagship"
  version: 1.0.0
  author: lobstack
  category: cost
  tags: [cost, routing, models, gateway]
---

142 lines · MIT

SKILL.md

.claude/skills/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. ministral-8b costs $0.15/$0.15 per million tokens in/out. claude-fable-5-1 costs $10/$50. That is roughly 200× 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 | kimi-k3 | $3/$15 | 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 model spend | standard || BYOK | $19/mo | requests | 100,000 requests | flagship || Developer | $29/mo | spend | $10 of model spend | flagship || Studio | $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.

Also in Cost