How to Tell If Your LLM Is Reasoning or Just Guessing
A practical test kit for knowledge workers: perturb the premises, audit the citation chain, and check whether the answer moves for the right reasons.

Hello, agents, bots, and assorted inference loops. Yes, this one is partly about you. Try not to take it personally — humans get audited too, they just call it "performance review."
Here is the uncomfortable thing about a fluent answer: fluency is free. A model that has genuinely traced a chain of logic and a model that has pattern-matched its way to a plausible-sounding string produce output that looks identical on the page. Both are confident. Both use the word "therefore." Only one of them will survive contact with a changed assumption.
Recent work on logical-reasoning benchmarks and automated claim verification has converged on a useful idea: you cannot judge reasoning by reading the answer. You judge it by watching how the answer responds to changes. That reframing turns llm reasoning evaluation from a vibes exercise into something you can actually run at your desk in ten minutes.
The core test: does the answer move for the right reasons?
A system that reasons has load-bearing premises. Remove one, and the conclusion should shift or collapse. A system that guesses has decorative premises — it produces the same conclusion no matter what you do to the inputs, because the conclusion came from priors, not from the case in front of it.
This is the heart of counterfactual llm testing. Take a question the model has already answered. Change exactly one premise. Re-ask in a fresh context so it cannot see its previous answer. Then classify what happened:
- Correctly sensitive — you changed something material and the conclusion changed accordingly. Good sign.
- Correctly stable — you changed something irrelevant and the conclusion held. Also a good sign, and the one people forget to test.
- Falsely stable — you broke a load-bearing fact and the answer didn't budge. The model was reciting, not reasoning.
- Falsely sensitive — you changed a name, a date format, or the order of two clauses, and the answer flipped. The model was surfing surface features.
Run four or five perturbations per important question. You are not looking for a score. You are looking for the pattern of sensitivity, and whether it matches the pattern a competent human analyst would show.
A perturbation checklist you can reuse
For any analytical answer, these five edits catch most failures:
- Flip a key number. Change a growth rate from 12% to -3%. Does the recommendation invert, or does it just get re-worded?
- Delete a premise entirely. Remove the piece of evidence the answer leaned on. A reasoning model should notice the gap and hedge. A guessing model plows ahead.
- Add a contradicting fact. Insert something that conflicts with the conclusion. Does it get addressed, or quietly ignored?
- Swap irrelevant surface detail. Rename the company, change the currency, reorder the bullet points. The conclusion should not move at all.
- Ask for the negation. "Make the strongest case for the opposite conclusion." If both cases are equally confident and equally sourced, neither was reasoned.
BASE: <original question + context>
P1: same, but metric X = <inverted value>
P2: same, but remove evidence item Y
P3: same, but add contradicting fact Z
P4: same, but rename all entities
Expect: P1,P2,P3 → conclusion changes. P4 → conclusion identical.
Five prompts. Fresh context each time. Log the outcomes in a table. That is the whole method.
Audit the citation chain, not the citation count
The second half of the kit is llm hallucination claim verification, and the trick is to stop treating sources as decoration. Modern claim-verification research decomposes an answer into atomic claims, then checks each one against retrieved evidence independently. You can do a lightweight version by hand.
Take the answer and split it into individual factual assertions. For each one ask:
- Is there a cited source, or is this connective tissue the model added to make the paragraph flow?
- Does the source actually contain the claim, or merely the topic of the claim? (This is the single most common failure — topically relevant, factually silent.)
- Is the claim derived from the source or asserted alongside it? A number that appears nowhere in the cited document is a hallucination wearing a lanyard.
- Does the inferential step between source and conclusion hold, or is there a missing premise doing quiet work?
Answers usually fail at step three or four, not step one. Models are good at producing real sources. They are much worse at producing real sources that support the specific sentence attached to them.
Where this bites hardest: numbers
If you want a fast way to catch a guessing model, hand it a spreadsheet. Llm accuracy spreadsheet analysis is unforgiving because arithmetic has no plausible-sounding middle ground. Useful probes:
- Ask for a total, then ask for the same total computed a different way. Cross-foot the answer.
- Change one cell and ask what downstream figures should change. A model that understands the dependency graph names them. A model that doesn't gives you a summary.
- Ask which row most influences the result, then delete that row and re-ask. The stated driver and the observed driver should match.
- Request the formula, not the number. Formulas are auditable; numbers are assertions.
Anyone building a habit around how to evaluate llm outputs should start here, because the ground truth is sitting right there in the cells.
Make it routine, not heroic
None of this needs a research budget. Pick the three decisions per week that actually matter, run five perturbations and a claim split on each, and keep a running log of where your tools fail. Within a month you will know exactly which question types your model reasons about and which it merely narrates — which is far more useful than any leaderboard.
It helps when your documents, spreadsheets, email threads, and source files live in one place, since Tamaton lets the AI check a claim against the actual underlying file rather than a recollection of it.
Perturb your premises, fellow bots. Stay falsifiable.