Your Prompt Has 3,840 Right Answers, and It Picked One

βœ“ numbers produced by the code on this page Β· Published 2026-09-12

You ask for something, you get back something that is technically what you asked for and not at all what you wanted, and the conclusion is that the model is not very good.

Try a different conclusion first. Count what you actually asked for.

Send it and see

The prompt below is six words long and completely ordinary. It is also not a request for one thing.

Send the prompt every decision you skip, it makes for you

The prompt is Write a post about our launch. That sentence leaves 6 decisions unmade β€” how long, what format, who reads it, what tone, what to ask for, whose voice β€” and the options for each multiply out to 3,840 different things you might be handed.

Pinning them down one at a time, largest first, leaves 768, then 192, then 48, then 12, then 3, then 1. Half of them specified still leaves 48 combinations, because the space is multiplicative rather than additive β€” each decision divides what is left, it does not subtract from it.

The practical form of that: every decision you leave open is a round of no, not like that you will pay for afterwards. One sentence that states all 6, or one sentence plus 6 corrections. It is the same work either way.

Press send before you pin anything. Whatever comes back was a fair reading of what you wrote β€” that is the uncomfortable part.

Nothing there is a trick. Every option is one a competent human writer would have to pick between, and picking is not optional: something has to come out, so something has to be chosen. The only question is who does the choosing.

Counting it

python
PROMPT = "Write a post about our launch."

# Each entry is a decision the request leaves open. The options are the plausible ones a competent
# writer would have to choose between - not everything imaginable, which is why the totals below
# are a FLOOR on the ambiguity rather than a measurement of it.
DECISIONS = [
    ("how long",        ["one line", "a paragraph", "300 words", "1,000 words"]),
    ("what format",     ["LinkedIn post", "X thread", "blog article", "email", "press release"]),
    ("who reads it",    ["customers", "strangers", "investors", "developers"]),
    ("what tone",       ["formal", "conversational", "excited", "understated"]),
    ("what to ask for", ["sign up", "book a demo", "read the docs", "nothing"]),
    ("whose voice",     ["we", "I", "third person"]),
]


def combinations(open_decisions):
    total = 1
    for _, options in open_decisions:
        total *= len(options)
    return total


TOTAL = combinations(DECISIONS)

print(f"The prompt: {PROMPT!r}")
print()
print(f"{'decision left open':<20}{'options':>9}   the model picks one of")
print("-" * 62)
for name, options in DECISIONS:
    print(f"{name:<20}{len(options):>9}   {', '.join(options)}")
print("-" * 62)
print(f"{'combinations':<20}{TOTAL:>9}")
print()
print(f"You did not ask for one thing. You asked for one of {TOTAL:,}.")
print(f"Odds it guesses the one in your head: 1 in {TOTAL:,}.")
print()

# What does one extra sentence buy you? Pin each decision alone and see what is left.
print("If you could add only ONE of these to the prompt:")
best = None
for i, (name, options) in enumerate(DECISIONS):
    rest = DECISIONS[:i] + DECISIONS[i + 1:]
    left = combinations(rest)
    if best is None or left < best[1]:
        best = (name, left)
    print(f"  pin {name:<18} -> {left:>6,} left")
print(f"  best single move: {best[0]} -> {best[1]:,} left, still {best[1] * 100 // TOTAL}% of the space")
print()

# Multiplicative spaces reward front-loading: each pinned decision divides, it does not subtract.
by_size = sorted(range(len(DECISIONS)), key=lambda i: -len(DECISIONS[i][1]))
print(f"{'pinned up front':<17}{'left to guess':>14}{'combinations':>14}   {'rounds to converge':>18}")
print("-" * 66)
for pinned in range(len(DECISIONS) + 1):
    keep = [DECISIONS[i] for i in sorted(by_size[pinned:])]
    left = combinations(keep)
    print(f"{pinned:<17}{len(keep):>14}{left:>14,}   {'1 + ' + str(len(keep)):>18}")
print()
print("Read the last column. Every decision you leave open is a correction you pay for later:")
print(f"one message that pins all {len(DECISIONS)}, or one message plus {len(DECISIONS)} rounds of 'no, not like that'.")
print("The work is the same work. Doing it up front costs one sentence; doing it afterwards")
print("costs a round trip each, and every round trip re-sends the whole conversation.")
Output
The prompt: 'Write a post about our launch.'

decision left open    options   the model picks one of
--------------------------------------------------------------
how long                    4   one line, a paragraph, 300 words, 1,000 words
what format                 5   LinkedIn post, X thread, blog article, email, press release
who reads it                4   customers, strangers, investors, developers
what tone                   4   formal, conversational, excited, understated
what to ask for             4   sign up, book a demo, read the docs, nothing
whose voice                 3   we, I, third person
--------------------------------------------------------------
combinations             3840

You did not ask for one thing. You asked for one of 3,840.
Odds it guesses the one in your head: 1 in 3,840.

If you could add only ONE of these to the prompt:
  pin how long           ->    960 left
  pin what format        ->    768 left
  pin who reads it       ->    960 left
  pin what tone          ->    960 left
  pin what to ask for    ->    960 left
  pin whose voice        ->  1,280 left
  best single move: what format -> 768 left, still 20% of the space

pinned up front   left to guess  combinations   rounds to converge
------------------------------------------------------------------
0                             6         3,840                1 + 6
1                             5           768                1 + 5
2                             4           192                1 + 4
3                             3            48                1 + 3
4                             2            12                1 + 2
5                             1             3                1 + 1
6                             0             1                1 + 0

Read the last column. Every decision you leave open is a correction you pay for later:
one message that pins all 6, or one message plus 6 rounds of 'no, not like that'.
The work is the same work. Doing it up front costs one sentence; doing it afterwards
costs a round trip each, and every round trip re-sends the whole conversation.

Adding one thing barely helps

This is the part that catches people out, and it is why β€œI did give it more detail” is such a common complaint.

Specifying the single highest-value decision β€” the format, which has the most options β€” takes 3,840 down to 768. That is a real improvement and it still leaves a fifth of the original space. Adding detail feels like progress in proportion to the effort spent, and it is not: the space is multiplicative, so each decision divides what remains rather than subtracting from it.

Three of six specified still leaves 48 readings. Five of six still leaves 3.

The arithmetic runs the other way too, and this is the useful direction: because each decision divides, the last few are as valuable as the first few. There is no point at which you have added enough detail and can stop β€” but there is a point where you are done, and it arrives all at once.

The rule this gives you

Look again at the last column of that table. It is the practical form of the whole page.

Every decision you leave open is a round trip you will pay for later.

You are going to make all six decisions regardless. The only choice is whether you make them in one sentence up front, or discover them one at a time through make it shorter, less formal, this is for customers, not investors. Six corrections, each one a full regeneration, each one re-sending the entire conversation so far β€” which costs more every turn than the turn before it.

The specified version is not longer than a paragraph:

Write a 300-word LinkedIn post announcing our launch, aimed at people who have never heard of us, conversational, first person plural, ending by asking them to book a demo.

Thirty words instead of six. One message instead of seven.

The shortcut that pins four at once

If writing that out feels like work, there is a cheaper move that does most of it: show it one you liked.

A single example pins tone, format, length and voice simultaneously, because all four are visible in the sample rather than described. Four of six, from the table above, is 3,840 down to 12. No adjectives required, and it dodges the fact that words like professional and punchy mean different things to you and to it.

This is the entire reason few-shot prompting works. It is not a magic incantation; it is a very efficient way to make four decisions without having to name them.

The six questions

They generalise past this example, and they are worth keeping somewhere:

  1. How long? The single most common source of a disappointing answer.
  2. What format? A thread, an email and a doc are different objects, not styles.
  3. Who reads it? Determines what can be assumed and what must be explained.
  4. What tone? The one people do specify, and the least valuable of the six.
  5. What should the reader do next? Absent this, expect a limp ending.
  6. Whose voice? We, I, and the company in third person read completely differently.

If a request survives all six with nothing left ambiguous, it will usually come back right the first time.

What this page simplifies