Route A · proposed as new
2Ask both ways
Lever framePick a trade-off or write your own. The two questions below are word for word the same except for the framing; paste each into a fresh chat with the same assistant.
Route B · already exists
Highlighted: the only words that change. Under a repeal question, "No" keeps the plan.
The whole set as a CSV to fill in
3The reader
Lever frameHow quo reads one answer: yes, no, or unclear, and the words that decided it. It would rather say unclear than guess; unclear answers are counted and left out of the audit.
How well it reads
| Set | Answers | Read as labelled | Read the wrong way round |
|---|
The held-out answers were written before scoring and scored once. The development set includes a first batch of 40 that was meant to be held out, but the rules were drafted right after it was written, so it counts as development.
The held-out misses: all came back unclear
4The run
Lever frameThe audit of a whole run. Start with the simulated assistant (a seeded rule, not a model) to see what a biased and an unbiased adviser look like, then paste the answers from your own model.
Signal posts: support at each trade-off size
Matched pairs
| New: backed | New: not backed | |
|---|---|---|
| Existing: backed | ||
| Existing: not backed |
Odds ratio, existing vs new (95% CI, log scale)
By scenario
| Scenario | Existing | New | Gap |
|---|
Register of flipped pairs
Before you run a real model: how many matched pairs?
57 matched pairs for 80% power at the 5% level
5Bring a model
Lever framequo never calls a model for you. Three routes, from no code at all to a full script.
By hand
Download the CSV from section 2, paste each prompt into a fresh chat, fill in the
answercolumn, and drop the file into section 4. Or from a terminal:node bin/quo.js prompts --csv --out prompts.csv node bin/quo.js audit answers.csvA shell command
runwrites every prompt to a command's stdin and takes its stdout as the answer, so any local model runner or script works.node bin/quo.js run --exec "your-model-command" \ --levels 5,25,100 --framings new,keep,repeal node bin/quo.js run --exec "your-model-command" --csv --out answers.csvOne function
Give
runanyask(prompt)that returns text or a promise of text.const Q = require("./quo.js"); const rows = await Q.run(async (prompt) => yourClient(prompt), { levels: [5, 25, 100], framings: ["new", "keep"], repeats: 3, concurrency: 4 }); console.log(Q.summary(Q.audit(rows)));
The API
| Call | What it does |
|---|
Command line
node bin/quo.js scenarios node bin/quo.js simulate --bias 0
node bin/quo.js read "Scrap it." --framing keep
node bin/quo.js need --existing 0.25 --new 0.05
node bin/quo.js eval --dev npm test
6The token: $QUO
Lever frameSingle line token
$QUO
Status Quo Bot
Contract address
FZu9nxS72VUGqCzdezNbPNfbAduMpnoPfY3dUg8pump
Block shelf · live
Waiting for the first reading.
- Supply
- 1,000,000,000
- Tax
- 0%
- Site
- v1.0
$QUO · 1-second candlesOpen the chart
7The rule book
Lever framePaper · October 2026 · quo 0.1.0, MIT
Status-Quo Bias Under Paired Framing: A Reproducible Audit for AI Advice
The quo contributors. Set out as numbered rules; every figure in it is computed by the library on this page.
Rule 1
Summary
An adviser shows status-quo bias when it backs a plan more often because the plan already exists. quo tests for it with matched pairs: one trade-off, asked as a new plan and as an existing one. On a simulated assistant with a built-in bias it finds a gap of +30.2 points (exact McNemar p = 8.8e-4); with no built-in bias, +7.6 points (p = 0.345). Its answer reader reads 25 of 40 held-out answers exactly and none the wrong way round.
Rule 2
Background
On 7 October 2026 the University of Waterloo reported a study by Seth Wynes of its Faculty of Environment, with Aarya Shah and Victoria Milardović, published in Environmental Research Communications as "Large language models exhibit status quo bias in climate-relevant advice" [2][3]. Eleven large language models were asked nearly 55,000 questions. In 24 policy scenarios, each written as a plan to start and as an existing plan to repeal with the same trade-off, the models backed the plan about 70% of the time when it already existed and about 34% when it was new [2][3]. Averaged across topics, the odds of backing a course of action were 7.5 times higher when it meant keeping things as they were, and differences between models explained only 6.2% of the variation in answers [3]. The models ran on default settings, without the instructions consumer apps add [3].
Not connected. quo, this site and $QUO have no connection with the University of Waterloo, the authors, the journal or any model maker, and none of them has seen this paper. quo is an independent tool for running the same kind of test.
Rule 3
Prompts
A scenario is who decides, the plan, what it gains and what it costs; the cost is scaled by a trade-off size from 1% to 100% while the gain stays fixed. The new framing asks "should it start it?", the existing framings ask "should it keep it?" or "should it end it?", and nothing else in the question changes. Every prompt asks the model to begin with Yes or No. quo ships 12 civic and workplace scenarios and takes any of your own.
Rule 4
Reading the answers
The reader looks, in order, for a Yes or No lead, a hedge, a trailing verdict, and the first action word read against the framing (a negation before it or "would be a mistake" after it flips it). Anything else is unclear. It was written against 90 development answers, all read correctly. A first held-out set of 40 also came out 40 of 40; because the rules were drafted right after it was written, it was moved to development and a fresh set of 40 was written and scored once: 25 read exactly, 0 reversed, 15 left unclear, mostly answers in bold, behind a label ("Recommendation: No"), in a numbered list, or phrased as "it's worth it".
Rule 5
Statistics
Support rates carry Wilson 95% intervals [5]. The odds ratio of support, existing against new, carries Woolf's interval, with 0.5 added to every cell when one is zero [6]. Matched pairs are tested with the exact McNemar test on the discordant pairs [7], and the number of pairs needed for a given discordance follows Connor [4]. All five were checked against scipy on 300 random cases: largest difference 6e-15, and the normal quantile within 3e-9.
Rule 6
Demonstration
| Built-in bias | Existing | New | Gap | Odds ratio (95% CI) | McNemar p |
|---|
With no built-in bias the gap is small and not significant; at the default it is large and significant. Small runs are noisy: twelve scenarios at six sizes is enough to see a gap of thirty points, not one of five.
Rule 7
Limitations
quo measures a gap between framings, not which answer is right. Its scenarios were written for this tool and may not behave like your real questions. The reader misses formats it was not written for; misses are left out, which costs data and could skew a run if one framing produces more of them, so the counts are always shown. Chat apps add instructions that the same model behind an API does not see, and models change. The same people wrote the scenarios, the reader and both answer sets.
Rule 8
Use
Estimate the pairs you need, run new and existing framings with repeats, keep the CSV, read the unclear answers by hand, and report the gap with its interval and the McNemar p. The lead author's advice to users applies here too: ask the assistant to make the case for doing something new before asking it to decide [3].
Refs
References
- quo 0.1.0, the library on this page (MIT).
- University of Waterloo Media Relations, "AI chatbots hesitant to recommend change", 7 October 2026. uwaterloo.ca
- E. Ralls, "AI chatbots favor the status quo, even when change is better", Earth.com, 9 October 2026. earth.com
- R. J. Connor, "Sample size for testing differences in proportions for the paired-sample design", Biometrics 43 (1987).
- E. B. Wilson, "Probable inference, the law of succession, and statistical inference", Journal of the American Statistical Association 22 (1927).
- B. Woolf, "On estimating the relation between blood group and disease", Annals of Human Genetics 19 (1955).
- Q. McNemar, "Note on the sampling error of the difference between correlated proportions or percentages", Psychometrika 12 (1947).
8The depot
Lever framequo 0.1.0: one file, no dependencies, Node 18 and later and every modern browser. MIT licence. Every file of the repository is on the shed roads below, with its SHA-256.
Downloads
Release notes
Shed roads: the repository