Before any clever technique, most disappointing AI answers come down to one thing: a vague prompt. The model completes what you give it — give it fog, get fog back. The good news: a handful of habits fixes 80% of it, and each one has a very concrete effect on your bill.

The analogy

Briefing a freelancer. “Make me a logo” produces three bad drafts and three billed round-trips. “Logo for an artisan bakery, warm colors, works at 32px, SVG + PNG, two options by Friday” produces something usable on the first pass. The model is that freelancer — brilliant, but it bills every exchange.

The principle

A prompt that works on the first try has four parts, in a stable order:

① ROLE       Who the model is:
             "You are a senior C# reviewer, direct, focused on security."
② CONTEXT    What it needs to know:
             the code, the doc, the audience, the constraint that matters.
③ TASK       One precise ask, positively phrased:
             "List the 3 riskiest issues" — not "don't miss anything".
④ FORMAT     What the output must look like:
             "A markdown table: issue | severity | fix."

The tips that pay, in rough order of impact:

  • Be embarrassingly specific. “Summarize” → “Summarize in 5 bullets for a non-technical executive, no jargon.”
  • Say what to do, not what to avoid. “Answer in formal French” beats “don’t be casual” — negations are the instructions models drop first.
  • Delimit your materials. Wrap pasted documents in tags (<document>…</document>) or triple quotes so instructions and data can’t blur — that blur is where prompt injection lives, too.
  • Give it an out. Add “if the information isn’t in the document, say so” — it’s the cheapest hallucination insurance there is.
  • Order for the cache: stable parts (role, rules, reference docs) first, the variable question last — see the payoff below.

A concrete example

BEFORE:  "Can you look at this contract?"
         → generic remarks, 3 follow-up prompts needed.

AFTER:   "You are a commercial-lease specialist.
          <contract>…</contract>
          List every clause that deviates from Belgian standard
          practice, one line each: clause → risk → suggested fix.
          If a clause is standard, don't mention it."
         → usable output, first try.

💶 The token payoff

  • A retry is never one message — it re-sends the entire conversation as input tokens. Three clarification round-trips on a 4,000-token context ≈ 12,000 extra input tokens, plus the wasted outputs (the expensive kind). A first-try prompt is the single cheapest optimization that exists.
  • Stable-first ordering makes the prefix cacheable: role + rules + reference docs re-read at up to ~90% off on every subsequent call (prompt caching).
  • A precise format request caps the output: “5 bullets max” costs a fraction of the three-page essay the model volunteers otherwise — and output tokens are the priciest.

The classic trap

The kitchen-sink prompt. Piling twenty rules, five roles and three examples into every request doesn’t make answers better — it makes them slower, costlier, and the model starts ignoring rules at random. A good prompt is like a good brief: everything needed, nothing more. When rules become permanent, move them to instructions where they belong.