Prompt Optimization: The Cheapest LLM Cost Cut You Are Not Making
Teams looking to reduce LLM API costs usually jump straight to switching models or negotiating volume discounts. The cheaper first move is almost always editing the prompt itself. Production prompts accumulate waste: polite filler ("Could you please...", "Thanks in advance!"), instructions pasted twice by different teammates, whitespace bloat from copy-paste, and stale context nobody trimmed. Every one of those characters is billed on every single request, forever. A prompt that carries 30% dead weight inflates your input bill by 30% at any scale, on any provider.
What to cut, in the order worth cutting it
Open a real production prompt and work down this list. Most of it takes twenty minutes and none of it changes what the model is being asked to do.
Retrieved context you never tuned. Nearly always the largest block and nearly always inherited from a tutorial default. If you are passing ten retrieved passages because ten was the example, try four. This is usually worth more than everything below it combined.
Duplicated instructions. On any prompt two people have edited, the same rule is stated twice in different words, often contradicting itself slightly. Both copies are billed and the contradiction costs quality as well as money.
Examples that have stopped earning their place. Few-shot examples added to fix a failure mode that later got fixed properly in the instructions. Remove them one at a time and re-run your evaluation; the ones nothing depends on are pure recurring cost.
Politeness and preamble. "Could you please", "thanks in advance", a paragraph explaining the company's mission to a model that only needs the task. Small individually, and billed on every request for the life of the system.
Verbose serialisation. Deeply nested JSON where flat rows carry the same meaning. The format is a budget decision when it repeats on every call.
Measure in tokens rather than characters, and measure the real thing rather than a shortened copy. Paste both versions into the token counter and read the difference, then multiply by your monthly call volume before deciding whether the edit was worth it.
The output side is the bigger lever, and almost nobody pulls it
Prompt optimization gets framed as trimming the input, which is the half that costs less. Across the 40 models we price, output costs a median of 5 times input and as much as 8.3 times. A hundred words you stop sending saves a hundred words at the input rate. A hundred words you stop the model writing saves several times that.
So before you polish the prompt, look at what comes back. Is the model restating the question before answering it? Explaining its reasoning to a program that discards everything except one field? Returning prose where the consumer wants JSON? Ask for the shortest form the consumer can use, set a maximum length, and specify the format precisely. On an output-heavy workload that single edit outperforms every other change on this page.
One caveat worth stating: a handful of models charge the same in both directions, and 8 of the 40 charge under three times. On those the argument is weaker. Check your own model rather than assuming the median applies.
Order matters as much as length
Prompt caching discounts are awarded on a stable prefix, so a prompt that interleaves fixed instructions with dynamic values breaks the cache on every call. Restructure so static content leads and variables trail and the repeated part becomes eligible for the cache-read rate, without changing a word of meaning. Where those rates are published the median discount is 90 percent off standard input, though 8 of the models we price publish no cache rate at all.
The commonest thing that defeats this is a value nobody thinks of as dynamic. A timestamp, a session id or a user's name interpolated into an otherwise fixed system prompt makes the prefix different on every single call, and the cache never engages. It is worth diffing two consecutive real requests byte by byte to find out whether the block you believe is constant actually is.
Cleaner prompts often run on cheaper models
There is a second-order effect worth knowing about. A good deal of what teams attribute to model quality is really prompt ambiguity, and a tightly specified prompt will sometimes do on a mid-tier model what a rambling one needed a flagship for. We publish no quality scores and cannot tell you whether that will hold for your task, so treat it as a hypothesis to test rather than a promise.
What we can tell you is what the test is worth if it passes. On the support-bot workload in our chatbot guide, the same traffic costs $6.00 a month on Ministral 3 3B 2512 and $1,080 on GPT 6 astra. That is the size of the prize, and an afternoon of evaluation is a cheap way to find out whether you can claim it.
Doing the triage in one click
The prompt optimizer automates this triage in one click, entirely in your browser: it strips filler, deduplicates context blocks, reorders for caching, then shows before and after token counts, the annual dollar impact at your scale, and which cheaper models the cleaned-up workload could safely run on. Paste your ugliest production prompt and see what it finds.