friday, september 18, 2026 · the day's ai, attributed published by trilot llc · wyoming
guide · running the business

How to decide which model runs which job

Build a small routing table that sends each recurring job to the cheapest model that can do it, and that keeps working after the next round of price changes.

Published 2026-09-05 · Updated 2026-09-05 · Read 9 min · Reviewed by Rami Steitieh

Verified 2026-09-05 · Rami
on this page · 0 / 0 checked

Somewhere in your business there is an integration that calls a model, and it calls the same model for everything, because that model was the sensible choice on the afternoon you set it up. It classifies inbound email with it. It drafts the weekly summary with it. It also, once a fortnight, does the one piece of work where being wrong would actually cost you a client. Three jobs, three different risk profiles, one default.

That default costs more than it needs to, in a specific and fixable way. The gap between the cheapest and the most capable model a vendor sells is roughly ten times on Claude [1] and more than forty times on OpenAI’s output tokens [2]. Nothing about the market rewards you for ignoring that. This guide is for people who call models through an API, or who pay a developer to. If your entire use of AI is a $20 chat subscription, routing is a dropdown in the app and you can stop reading here; you are already paying a flat rate and there is no bill to optimise.

The spread that matters is inside one vendor’s lineup, not between vendors

Start by looking at a single vendor’s rate card end to end. Anthropic currently prices Claude Haiku 4.5 at $1 per million input tokens and $5 per million output, Claude Sonnet 5 at $2 and $10, Claude Opus 5 at $5 and $25, and Claude Fable 5.1 at $10 and $50 [1]. Bottom to top, that is a factor of 10 on both axes. OpenAI’s spread is wider still: GPT-5.6 Luna is $0.20 in and $1.20 out, GPT-5.6 Terra is $2 and $12, GPT-5.6 Sol is $4 and $20, and GPT-6 Astra is $10 and $50 [2]. Astra’s output tokens cost roughly 42 times Luna’s. Google’s line runs from Gemini 3.1 Flash-Lite at $0.25 and $1.50 for text up to Gemini 3.1 Pro Preview at $2.00 and $12.00 for prompts of 200,000 tokens or under, and $4.00 and $18.00 above that [3].

Now compare across vendors at the same level. Claude Fable 5.1 is $10 and $50 [1]. GPT-6 Astra is $10 and $50 at its standard short-context rate [2]. The two most expensive models on the two biggest platforms carry the same headline price, to the dollar. That is what a price war looks like once it has been running a while: the tiers land on each other, and the competition moves to who has the better model at that price rather than who is cheaper.

The practical conclusion is unglamorous. If the top tier of two platforms carries the same price [1][2], moving a workload across vendors cannot save you money at that tier, and it costs you every prompt you had tuned. Moving a workload down one tier inside the vendor you already use is an afternoon, and it is the move that changes the number. One more thing to notice while you are reading the rate card: output tokens cost 5 to 6 times input tokens at most tiers [1][2][3]. A prompt that asks for a paragraph when a word would do is a pricing decision, not a style decision.

Sort jobs by what a wrong answer costs, not by how hard they feel

The instinct is to route by difficulty, on the theory that hard work needs the strong model. That instinct is wrong often enough to be worth replacing, because difficulty is a property of the task as you imagine it and cost is a property of what happens after the output arrives.

Two things decide the tier. The first is whether a human reads the output before it does anything: before it reaches a customer, changes a record, or gets pasted into something you send. The second is how expensive the error is to catch later if nobody does. Classification, tagging, first-pass summarisation, extracting fields from documents, drafting things you will rewrite anyway: these are high volume, they get checked downstream by the person doing the next step, and a marginally worse output costs you seconds. Those go to the cheapest tier that passes your own test, and at $0.20 and $1.20 per million tokens [2] or $1 and $5 [1] the volume is where the savings compound. Work that runs unattended, touches money, or goes out under your name in its first draft goes to the top tier. Price that decision with the calculator below rather than arguing about it: the top Claude tier costs 10 times the bottom one [1], and 10 times a small number is still a small number.

There is a third axis that overrides both. If a job handles material you are contractually obliged to keep in a jurisdiction, price does not get a vote. Anthropic charges a 1.1x multiplier on all token categories for US-only inference through the inference_geo parameter [1], and OpenAI applies a 10% uplift for data residency on models released on or after March 5, 2026 [2]. Google states that on paid tiers, content is not used to improve its products [3]. Pin those jobs to the path that satisfies the obligation, note why in the table, and route everything else on cost.

Three levers cut the bill before you change models at all

Before you move anything down a tier, take the discounts that are sitting there unclaimed on the model you already use.

The first is batch. If a job does not need its answer in the next few seconds, sending it through the batch endpoint costs half. Anthropic’s Message Batches API charges 50% of standard input and output rates, most batches finish in less than an hour, the maximum window is 24 hours, results stay available for 29 days, and a single batch is limited to 100,000 requests or 256 MB, whichever comes first [4]. OpenAI’s Batch API is also a 50% discount with a 24-hour completion window, up to 50,000 requests and a 200 MB input file, and it does not consume tokens from your standard per-model rate limits [5]. Google’s batch prices are likewise half the standard rates across its current models [3]. Overnight classification of a month of support email is a batch job. The email in front of you right now is not.

The second is caching, and it is the one most people leave switched off. On Claude, cache hits cost 0.1x the base input price, or 0.025x on Claude Fable 5.1 and Claude Mythos 5.1; writes cost 1.25x for the 5-minute TTL and 2x for the 1-hour TTL [6]. In money, that means Claude Fable 5.1 input drops from $10 per million to $0.25 per million on a cache hit [1]. OpenAI prices cached input at a tenth of standard, so $1 against $10 on GPT-6 Astra and $0.02 against $0.20 on GPT-5.6 Luna [2]. Gemini 3.8 Flash context caching is $0.075 per million through December 31, 2026 [3]. The catch worth knowing: Anthropic’s minimum cacheable prompt is 512 tokens on Fable 5.1, Mythos 5.1 and Opus 5, 1,024 on Sonnet 5, and 4,096 on Haiku 4.5, and a request to cache fewer tokens than that is processed without caching and returns no error, so you must read cache_read_input_tokens in the response to confirm it happened [6].

The third is refusing to pay for speed nobody is waiting for. Anthropic’s fast mode, available on Claude Opus 5 and Claude Opus 4.8, costs $10 and $50 against the standard $5 and $25 [1]. OpenAI’s fast mode doubles standard rates at every tier [2]. For anything running on a schedule, that is a straight doubling of the bill in exchange for latency no human will observe.

Write the table down, and put a date on every row

A routing decision that lives in one person’s head is not a routing table, it is a habit. The artifact you want is a plain list, six columns wide, one row per recurring job: what the job is, roughly how many times a month it runs, which model and tier it uses, whether it goes through the batch endpoint, why it sits at that tier in one sentence, and the date you last checked. Keep it in whatever your team already opens. It does not need to be a system.

The “why” column is the one that earns its keep. Six months on, when someone asks whether the invoice-extraction job can move to the cheap tier, the answer is either “we tested it in March and it dropped fields” or a shrug. The first is a decision; the second is how you end up re-litigating the same question every quarter. The date column is what tells you which rows have gone stale.

Price each row before you move it, using your actual token counts rather than a guess, because the shape of a job decides how much a tier change is worth. A job with a long input and a one-word output barely notices an output price cut. A job that writes a page from a short brief is almost entirely output cost.

calculator
Monthly cost of one job
$ / month

runs × (input k-tokens × input price + output k-tokens × output price) ÷ 1,000. Run it twice, once with each tier's published prices, and compare. Halve both prices for batch. Computed in the page; nothing is sent anywhere.

Prices move in both directions, and models get retired on a schedule

Two assumptions quietly break most routing tables. The first is that today’s price is the price. It is not, and it does not only fall. Claude Sonnet 5’s $2 and $10 was announced at launch as introductory pricing through August 31, 2026, and the scheduled increase to $3 and $15 will not occur, making the lower price standard [1]. GPT-5.6 Sol’s $4 and $20 is promotional pricing through November 21, 2026 [2]. Gemini 3.8 Flash is $0.75 in and $3.75 out through December 31, 2026, and $1.50 and $7.50 starting January 1, 2027, which is a doubling with a date on it [3]. If your cheap tier is cheap because of a promotion, put the expiry in the table.

The second assumption is that the model you chose will still be there. Anthropic runs a four-stage lifecycle of active, legacy, deprecated and retired, gives at least 60 days’ notice before retirement for publicly released models, and publishes a “not sooner than” date per model: claude-haiku-4-5-20251001 carries October 15, 2026, claude-sonnet-5 carries June 30, 2027, and claude-fable-5-1 carries September 1, 2027 [7]. Retirements do happen. Anthropic notified developers using Claude Opus 4.1 on June 5, 2026, and claude-opus-4-1-20250805 retired on August 5, 2026, with claude-opus-4-8 named as the replacement [7]. OpenAI commits to at least 6 months for generally available models and at least 3 months for specialised variants such as chat, Codex and deep research, while preview models may be retired with much shorter notice, such as 2 weeks [8]. Its gpt-5-2025-08-07 and o3-2025-04-16 snapshots shut down on December 11, 2026, and the older gpt-3.5-turbo-0125, gpt-4-0613, o1 and o3-mini snapshots on October 23, 2026 [8].

The operational version of all that is two calendar entries. One for the earliest retirement date among the models in your table, set a month before it, so migration is a planned afternoon rather than a production outage. One quarterly, to re-read the rate cards. If you cannot remember which models your keys are actually calling, the Usage page in the Claude Console has an Export button that produces a CSV of usage broken down by API key and model, which is the fastest way to find a deprecated model still running somewhere you forgot about [7].

Test on your own work, and keep the test

Vendor benchmarks measure something adjacent to your job. The only evidence that settles a routing question is a run of your own work.

Build the test once and reuse it forever. Take 20 real inputs from the job you want to move, the messy ones included, and save the outputs you were happy with from the model you use now. That is your regression set. When you want to try a cheaper tier, run the same 20 inputs through it and read the outputs side by side, looking for the specific failure that would cost you something, not for a general impression of quality. Dropped fields, invented details, ignored instructions, wrong tone in the customer-facing ones. If the cheap tier fails 2 of 20 on things a human downstream would catch anyway, it is fine. If it fails 2 of 20 on things nobody would catch, it is not, at any price.

Keep the set in version control or a folder with the job, not in a chat window. Its value is that you can re-run it in ten minutes when the next model ships, which converts a decision that currently feels like a research project into a routine check.

checklist
Before you change which model runs a job
0 of 8 · saved in this browser only

What still goes wrong

Every price in this guide is a snapshot taken on the date in the header, and several of them have expiry dates printed on the vendor’s own page [2][3]. Rate cards get restructured, tiers get renamed, and what counts as a cached token or a long-context request changes with them. Check the source before you commit money to a routing decision, and treat any number quoted in a blog post, this one included, as a starting point rather than a quote.

The bigger limit is that routing tables optimise a cost you can see and ignore one you cannot. Cheap-tier output that is subtly worse costs you in rework, in the trust of whoever reads it, and in the time you spend re-checking work you used to be able to trust. None of that appears on an invoice, and it will not show up in the first week. If you move a job down a tier, spend a month paying more attention to its outputs than the savings seem to justify, and be willing to move it back. Moving back is not a failure of the process, it is the process working.

Finally, this whole exercise only pays off above a certain volume. If your API bill is $30 a month, an afternoon of routing work is worth less than the afternoon. Spend it on the prompts instead, or on the parts of the business that are not a token bill. The routing table earns its keep when a single job runs thousands of times a month, and until then the honest advice is to use the good model and get on with the work.

sources
  1. 01Anthropic — Claude model pricingplatform.claude.com
  2. 02OpenAI — API pricingdevelopers.openai.com
  3. 03Google — Gemini API pricingai.google.dev
  4. 04Anthropic — Message Batches APIplatform.claude.com
  5. 05OpenAI — Batch API guidedevelopers.openai.com
  6. 06Anthropic — Prompt cachingplatform.claude.com
  7. 07Anthropic — Model deprecationsplatform.claude.com
  8. 08OpenAI — Deprecationsdevelopers.openai.com
next guide
Your policy doc is context, not enforcement
9 min · verified 2026-09-05
related guides