Prompt caching
If you send the same long block of text repeatedly (a system prompt with detailed instructions, a policy document, a code file, a knowledge base) the provider can store its processed form and charge a fraction to reuse it. Discounts are typically 50% to 90% on the cached portion, and some providers apply it automatically while others need a marker in the request.
The mechanism decides how you use it. The cache matches on an exact prefix: the request has to begin with byte-identical text. So the rule is to put everything stable at the front and everything variable at the back.
[ long instructions ] <- identical every time, cached
[ reference document ] <- identical every time, cached
[ today's date, user's name] <- CHANGES: breaks the cache from here on
[ the question ]
move the date and the name to the END, after the question,
and the whole block above stays cachedThat single reordering is worth a large fraction of the bill on any workload with a fixed preamble, and it is the most common cache mistake: one variable field near the top invalidates everything after it.
Caches expire: commonly a few minutes of inactivity, extendable at a price on some providers. So caching pays when requests come in bursts and does nothing for one request an hour.
Batch processing
Most providers offer a batch route: you upload many requests as a file, they are processed within a stated window (usually up to 24 hours) and you collect the results. The discount is generally around 50%.
This is the right route for anything that does not need an answer now: classifying an archive, generating descriptions for a catalogue, summarising last month’s tickets, translating a documentation set. Half price for patience.
50,000 items, live: $458
50,000 items, batch: $229Two practical notes. Results come back unordered, so include your own identifier with each request. And the window is a maximum, not a promise of speed: most batches finish much sooner, but you cannot rely on it, so do not put a batch job in front of a deadline.
The discounts that need nothing from the provider
Stop resending the conversation. In a chat front-end, cap the history at the last ten messages. Most of the cost of a long conversation is the earlier turns being re-read every time.
Ask for shorter answers. Output is the expensive side. A model told to answer in 100 words instead of 500 costs a fifth as much for the generation, and for most questions the 100-word version is the one you wanted.
Send less. People attach a whole document when a section would do. Extraction with pdftotext and a few lines of slicing costs nothing and can cut a request by 90%.
Turn thinking off when it does not help. Covered in module one; it belongs on this list because it is the biggest single lever.
Deduplicate. If the same question is asked repeatedly by different people, store answers in a table keyed by the question. A dictionary lookup costs nothing and often serves a third of the traffic in customer-facing work.
What none of this fixes
Two costs are immune to all of it. A model that has to read a long document to answer a global question about it (is anything inconsistent, what is the overall argument) must see the whole thing, and no amount of caching, batching or routing avoids paying for that once.
And an answer that has to be right cannot be made cheaper by being generated more cheaply. Where the cost of an error dominates, the correct spending decision is usually to pay for the better model and the review step, and to look for savings on the routine work that surrounds it instead.
The ordering that matters
If you want to cut a bill, do these in this order, because the first three cost nothing and the last one costs quality:
- Send less and ask for less.
- Cache the stable prefix, batch what can wait.
- Route easy items to a smaller model.
- Only then consider accepting worse output.
Most people go straight to step four by switching to a cheaper model everywhere, discover the quality drop, and conclude the work cannot be done cheaply. The first two steps are usually worth more than the model change, and they cost you nothing at all.
Every lesson here is open. Your progress is recorded once you pass the AI at Work exam.
Check your understanding
A workload puts the current date at the top of an otherwise identical 8,000-token preamble, and prompt caching saves almost nothing. Why?
Pick the one you would defend. Your answer stays private.
Stuck on something?Ask Rukmini, your AI tutor