Choosing and Using the ToolsLesson 33 of 76

Contents

Choosing and Using the Tools

Lesson 33 of 76. Sign in to keep your place.

Module 4 · What it actually costs

The two discounts almost nobody uses

8 min read

Order the request so the cache can matchLong instructionsByte-identical every time. Cached.Reference documentByte-identical every time. Cached.The questionVaries. Everything from here down is charged infull, which is correct and unavoidable.Today’s date, the user’s nameMove these below the question. One variable fieldnear the top invalidates every cached block afterit.The cache matches on an exact prefix, so every stable block goes at the front and everything variableat the back. Discounts run from a half to nine tenths on the matched portion, and the commonestmistake is a date sitting two lines from the top.
The cache matches on an exact prefix, so every stable block goes at the front and everything variable at the back. Discounts run from a half to nine tenths on the matched portion, and the commonest mistake is a date sitting two lines from the top.

Figure

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.

Text
[ 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 cached

That 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.

Text
50,000 items, live:   $458
50,000 items, batch:  $229

Two 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:

  1. Send less and ask for less.
  2. Cache the stable prefix, batch what can wait.
  3. Route easy items to a smaller model.
  4. 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.

Next lesson · 8 minSpending money where it matters

Stuck on something?Ask Rukmini, your AI tutor

How to cite: Addaly (2026) ‘The two discounts almost nobody uses’, in Choosing and Using the Tools. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/choosing-your-tools/caching-and-batching (Accessed: 13 October 2026).