Apply to my task
arXiv:2512.08646 ★ 73 Dec 9, 2025

How You Structure Questions in a Prompt: Battery Saves 6x the Tokens, but Recency Bias Shifts Answers 20x

Key result

Finding: An LLM picks an answer option by its position, not its meaning — the last one in the list is chosen 20 times more often than the first (Llama-3.1-8B). The cause: models generate text left to right, and the last tokens are "fresher" in the attention context. The QSTN method (battery presentation + structured outputs) lets you ask multiple questions in one prompt with bias protection, saving 2-6x the tokens and getting answers that align better with humans. Battery loads all the questions into one prompt — the model sees the full structure of the task. Structured outputs (JSON) force it to follow the format. Verbalized Distribution ("60% confident in A, 30% in B") sidesteps recency bias — instead of picking one option, the model spreads probabilities. Result: +8% alignment with human answers with 2-6x token savings (tested on 40+ million answers from 10 models).

01

TL;DR

The researchers tested three ways to ask an LLM multiple questions: battery (all questions in one prompt), sequential (one at a time in the same conversation), and single-item (each question in a fresh chat). They checked this on 40+ million answers from 10 models on real surveys — political views, sociological studies, social psychology.

Key findings: recency bias — models pick the last answer option 20 times more often than the first (Llama-3.1-8B), even when the meaning is the same. Middle category bias — 67-89% of models favor the middle option on odd-numbered scales (1-5 rather than 1-4). Typos, rephrasing, reversing the order of options — all of it meaningfully changes the answers. The cause: models generate text left to right, and the last tokens are "fresher" in context. The middle option reads as the "safe" neutral answer.

Battery presentation (all questions in one prompt) gives 8% better alignment with human answers and saves 2-6x the tokens compared with sequential/single-item. For closed-ended questions, structured outputs (JSON) and Verbalized Distribution work better — the model states the probability of each option in words: "60% confident in A, 30% in B, 10% in C".

Want this for your own case? Apply this study to your task: AI adapts its method to what you are working on and writes the prompt.

02

Three Question Formats

BATTERY: All questions in one prompt → the model answers everything at once

SEQUENTIAL: Question → answer → next question in the same chat → answer...

SINGLE-ITEM: Each question in a new chat, with no context from the previous ones

03

Example in Action

⚠️ First, the limitations: - Not for creative tasks without criteria - Not for simple one-off questions - The effect shows up with multiple questions that have closed-ended answer options

Where it shines: evaluating something against several criteria, when you need structured answers and want to save tokens.


Task: You're a VC looking at a US edtech startup. You need to score it on 5 criteria: team, product, market, unit economics, risks. Instead of 5 separate requests — one prompt using battery presentation.

Prompt:

You are a venture investor evaluating the edtech startup "CodeSprout" — a platform that teaches kids to code.

Quick facts:
- Team: 2 founders (ex-Google, ex-Meta), 3 years of edtech experience
- Product: online Python courses for kids ages 8-14, gamified
- Market: US, kids' after-school enrichment market at $9B/year
- Economics: average ticket $299/course, CAC $60, retention 40%
- Competitors: Code Ninjas, Tynker, CodeCombat

Score the startup on each criterion. Answer format — JSON:

{
  "team": {
    "rating": "High/Medium/Low",
    "probability_of_success": "60%",
    "key_factor": "brief explanation"
  },
  "product": {
    "rating": "High/Medium/Low",
    "probability_of_success": "60%",
    "key_factor": "brief explanation"
  },
  "market": {...},
  "unit_economics": {...},
  "risks": {...}
}

⚠️ Important: don't give every criterion the same rating. Score each one independently.

Result:

The model will return structured JSON with ratings on all five criteria in a single response. The format lets you see the full picture at once and compare criteria. Savings: instead of 5 requests at ~500 tokens each (2,500 tokens) — one request at ~600-800 tokens.

⚠️ But keep recency bias in mind: If you ask it to pick one option from a list A/B/C, the model will pick C 20 times more often. That's why the example above uses Verbalized Distribution (probability as a percentage) + JSON for structure.

04

Why It Works

The LLM's weakness: Models generate text left to right, so the last tokens are "fresher" in the attention context. When choosing between A/B/C, the model sees C last and gives it more weight. That's called recency bias — not a bug, but an architectural trait of transformers. On odd-numbered scales (1-5), models treat the middle option as the "safe neutral" one and pick it more often.

The LLM's strength: Models hold context well and can handle several related tasks in one prompt (multitask in a battery). That saves tokens on repeated instructions and lets the model see the full picture instead of answering questions in isolation.

How the method uses that strength: Battery presentation loads all the questions at once — the model sees the full structure of the task and can account for connections between questions. Structured outputs (JSON) force the model to follow the format rather than generate free text. Verbalized Distribution ("60% confident") sidesteps recency bias — instead of picking one option, the model spreads probabilities in words, which reduces the influence of each option's position.

Control knobs:

  • Question format — battery to save tokens, single-item if you need the questions isolated
  • Option order — to test robustness, ask the question twice with the order reversed (A-B-C → C-B-A); if the answers differ, there's recency bias
  • Structured output — JSON for structure, but you can skip it if you want to see the reasoning
  • Odd vs even scale — avoid 1-5 scales if you don't want a pull toward the middle; use 1-4 or 1-6
05

Prompt Template

{role_and_context}

{description_of_object_or_situation}

Score it on the following criteria:

1. {criterion_1}: {description}
2. {criterion_2}: {description}
3. {criterion_3}: {description}

Answer format — JSON:

{
  "{criterion_1}": {
    "rating": "{options separated by /}",
    "confidence": "{percentage}",
    "rationale": "{brief explanation}"
  },
  "{criterion_2}": {...},
  "{criterion_3}": {...}
}

⚠️ Important: score each criterion independently; don't give them all the same rating.

Placeholders: - {role_and_context} — who you are and why you're evaluating (investor/recruiter/expert) - {description_of_object_or_situation} — what's being evaluated (startup/candidate/product) - {criterion_N} — which parameters to score on (team/experience/quality) - {options separated by /} — the answer options (High/Medium/Low or 1-4) - {percentage} — degree of confidence (Verbalized Distribution)

Why "score independently"? Models are prone to consistency bias — giving every criterion a similar score. An explicit instruction dampens that effect.


🚀 Quick start — paste into a chat:

Here's a battery-presentation template with bias protection.
Adapt it to my task: [your task — what to evaluate and on which criteria].

Ask me questions to fill in the fields.

[paste the template above]

The LLM will ask what you're evaluating, which criteria matter, and what answer options you need — because the JSON structure and Verbalized Distribution require a clear format. It'll take the pattern from the template and fit it to your task.

06

Adaptations

🔧 Technique: Test for recency bias → see how robust it is

If you suspect the model is choosing by the option's position rather than its meaning:

[ask the same question twice with the options in reverse order]

Question 1: How important is this factor?
A) Very important
B) Moderately important
C) Not important

Question 2: How important is this factor?
A) Not important
B) Moderately important
C) Very important

If the answers differ (C the first time, C again the second time), that's recency bias.

🔧 Technique: Drop the JSON → see the reasoning

If you want to understand WHY the model scored it that way, drop the JSON and ask for free text with a probability distribution:

Score it on the criteria, and for each one state:
- How confident you are in each rating, as a percentage
- Which key factor drove the decision
- What data would be needed for a more accurate assessment

Write in free text, but organize it by criterion.

🔧 Technique: Even scale instead of odd → removes middle category bias

If the model picks the "middle" option too often:

❌ 1-5 scale (has a middle option, 3)
✅ 1-4 or 1-6 scale (no clear middle)

The model is forced to choose — either positive (3-4) or negative (1-2).
07

Limitations

⚠️ Not for creative tasks: Battery presentation reduces answer diversity on creative tasks. If you need 5 different content ideas, you're better off with 5 separate requests (single-item); otherwise the ideas will all look alike.

⚠️ Recency bias is stronger on small models: On Llama-3.1-8B the effect is 20x; on Llama-3.3-70B and Gemini-1.5-Pro it's weaker, but still there. The smaller the model, the stronger the bias.

⚠️ Not for complex multi-step reasoning: If each question depends on the answer to the previous one, use sequential, not battery. Battery is better when the questions are independent or loosely related.

⚠️ Structured outputs can break: If a model wasn't trained on structured outputs (JSON), it may return invalid JSON. Verified to work on: GPT-4, Claude, Gemini, Qwen, Llama 3+. On older/smaller models it may take several attempts.

08

How They Tested It

A team from the University of Mannheim and GESIS took four real sociological surveys — the American National Election Study (ANES), the German Longitudinal Election Study (GLES), the American Trends Panel (ATP) — 16 questions in total about political views and social attitudes. They created 7,530 synthetic personas with demographic characteristics (gender, race, age, region) drawn from real respondents. For each persona they ran 10 models (Llama, Qwen, Gemma, Phi, Gemini) with 3 different seeds and 4 prompt variations (question order, answer option order). Total: 40+ million answers.

They compared these with real human answers on two metrics: Mean Absolute Error (how much each individual answer differs) and Wasserstein distance (how much the answer distribution of a synthetic subgroup differs from a real subgroup of people with the same characteristics).

The surprise: Battery presentation saves 2-6x the tokens (sequential: 8,216 input tokens, battery: 723 tokens for one persona) while also giving 8% better alignment with human answers for large models. For small models (<8B parameters), sequential or single-item works better — apparently they struggle to hold many questions in context at once.

The 20x recency bias in Llama-3.1-8B was the most striking result: the "Not important" option was chosen 5% of the time when it was first (A), and >100% of the time when it was last (E) — in other words, practically always. For larger models the effect is weaker (2-3x), but still significant.

Practical insight: If you're doing data annotation or surveys with LLMs, use battery to save money, but always test for recency bias by reversing the option order. And it's better to use Verbalized Distribution or even-numbered scales to reduce the impact of these biases.

09

Resources

QSTN: A Modular Framework for Robust Questionnaire Inference with Large Language Models — Maximilian Kreutner, Jens Rupprecht, Georg Ahnert, Ahmed Salem, Markus Strohmaier (University of Mannheim, GESIS - Leibniz Institute for the Social Sciences, CSH Vienna)

Live GUI — a no-code interface (for researchers)

Video presentation

Research digest

Key result

Finding: An LLM picks an answer option by its position, not its meaning — the last one in the list is chosen 20 times more often than the first (Llama-3.1-8B). The cause: models generate text left to right, and the last tokens are "fresher" in the attention context. The QSTN method (battery presentation + structured outputs) lets you ask multiple questions in one prompt with bias protection, saving 2-6x the tokens and getting answers that align better with humans. Battery loads all the questions into one prompt — the model sees the full structure of the task. Structured outputs (JSON) force it to follow the format. Verbalized Distribution ("60% confident in A, 30% in B") sidesteps recency bias — instead of picking one option, the model spreads probabilities. Result: +8% alignment with human answers with 2-6x token savings (tested on 40+ million answers from 10 models).

Principle

Don't ask 5 questions one at a time — load them all into one prompt with a JSON format. The model holds the context of every question and sees the connections between criteria. You save on repeated instructions. But there's a trap: when choosing A/B/C, the model picks C 20 times more often than A (recency bias). The fix: Verbalized Distribution — instead of "pick one", ask "give the probability of each as a percentage". The model isn't choosing, it's distributing — that sidesteps position bias. Bonus: an even scale (1-4 or 1-6) instead of an odd one (1-5) removes middle category bias — where the model picks the middle option 67-89% of the time as the "safe neutral" choice.

Why it works

The cause of recency bias: models generate text left to right, and the last tokens are "fresher" in the attention context. When choosing A/B/C, the model sees C last and gives it more weight. It's not a bug but an architectural trait of transformers — the last token gets priority in the attention mechanism. Battery presentation gives +8% alignment with human answers on evaluation tasks (political views, sociological surveys, psychological scales). Token savings: sequential (questions one at a time in the same chat) spends 2-3x more on repeated context, single-item (each question in a new chat) 4-6x more on instructions. Structured outputs act like rails for the model. The JSON format keeps the model from wandering off into free text generation — it has to follow the structure. That reduces variability and increases answer consistency.

When to apply

Evaluating against multiple criteria → for startups (team/product/market/economics/risks), candidates (experience/skills/culture fit/motivation), products (quality/price/UX/support), content (relevance/tone/structure/grammar), especially when you need structure (JSON/a table) and token savings. NOT for creative tasks without criteria — battery reduces answer diversity. To generate 5 different content ideas, 5 separate requests (single-item) work better; otherwise the ideas will all look alike.

Mini recipe

1. Load all the questions into one prompt (battery presentation): instead of 5 requests at 500 tokens each — one at 600-800 tokens. Example: "Score the startup on these criteria: team, product, market, economics, risks" 2. Define the answer structure in JSON: each criterion = an object with the fields "rating": "High/Medium/Low", "confidence": "60%", "rationale": "..." 3. Use Verbalized Distribution instead of a choice: not "pick A/B/C" but "give the probability of each option as a percentage" or "how confident are you in each rating, as a percentage" 4. Add an instruction against consistency bias: "⚠️ Important: score each criterion independently; don't give them all the same rating" (models tend to give every criterion a similar score) 5. Test for recency bias: ask the question twice with the options reversed (A-B-C → C-B-A). If the answers differ (the last option chosen both times), there's bias — use Verbalized Distribution

Examples

[BAD]: You ask 5 separate questions: `Rate the edtech startup's team`, `Rate the product`, `Rate the market`, `Rate the economics`, `Rate the risks`. Each request is ~500 tokens = 2,500 tokens. The model doesn't see the connections between criteria and may give inconsistent ratings (strong team, but weak market, yet high potential — the logic doesn't add up). [GOOD]: `You're a venture investor evaluating the edtech startup "CodeSprout" (online Python courses for kids ages 8-14). Team: 2 founders, ex-Google/Meta, 3 years of edtech experience. Economics: $299 ticket, $60 to acquire a customer, 40% retention. Competitors: Code Ninjas, Tynker. Score it on the criteria. Format — JSON: {"team": {"rating": "High/Medium/Low", "confidence": "60%", "key_factor": "..."}, "product": {...}, "market": {...}, "unit_economics": {...}, "risks": {...}}. ⚠️ Important: score independently; don't give them all the same rating.` One request at ~700 tokens; the model sees the full picture and the connections between criteria.

In plain words

In Plain Words: 2512.08646

In Plain Words

QSTN: A Modular Framework for Robust Questionnaire Inference withLargeLanguageModels

Here's the deal: when you dump a pile of questions on an AI, it starts fumbling — not for lack of knowledge, but because of how it's built. An LLM reads text left to right, and whatever it saw last feels most important. That's recency bias: if a quiz has options A, B, and C, the model will very likely jab at C simply because that token is "fresher" in its memory. So what you get isn't the AI's honest opinion but statistical junk dictated by the word order in your prompt.

Picture an interrogation where the detective reads you a list of twenty accusations without pausing. By the middle you've zoned out, and on the last one you just nod to make it stop. Technically you answered everything, but in reality your answers are mush, with the detective's last words outweighing everything else. The researchers ran 40 million answers and realized: piling everything into one heap is a surefire way to kill the model's logic.

To avoid garbage output, they tested three approaches. The battery method is when you cram all the questions into one prompt, and it works worst. Sequential is when you ask the questions one by one in the same chat, but here the model starts "adjusting" to its own previous answers to look consistent. The cleanest but most expensive option is single-item, where every question goes into a brand-new chat. That strips out the influence of context and makes the model think about the specific task instead of trying to guess a pattern.

This modular questioning principle matters for far more than sociologists. It applies anywhere you need to pull an objective assessment out of an AI: from product classification to analyzing legal documents. If you ask a model to grade an article on ten criteria in a single message, it will mess up the first items or mix up the priorities. Splitting questions into independent blocks is the only way to make a transformer work like an analyst rather than an eager-to-please parrot.

Long story short: stop feeding the AI walls of questions if you care about the result, not just filled-in fields. Primacy and recency effects break objectivity even in the most powerful models like GPT-4 or Gemini. Want sane data? Use isolated requests, or at least shuffle the answer options. Otherwise you're not measuring the model's opinion, you're measuring how tired it is of your context.

ArXiv ID: 2512.08646 | Generated: 2026-01-02 17:03 | Nova Research

AI lab assistant

Apply this study to your task

Describe what you're working on. AI takes the method and the measured results from this paper and adapts them to your case, or writes a ready prompt built on them.

Based on How You Structure Questions in a Prompt: Battery Saves 6x the Tokens, but Recency Bias Shifts Answers 20x arXiv:2512.08646

Sign in to apply this study New accounts get 50 free credits.