Verifying AI Output
A routine for checking AI answers: split a reply into claims, then check facts, numbers, code and citations against something outside the model.
On this page
You give an AI assistant your monthly budget notes and ask for a summary. It replies with a tidy breakdown, a total, and a few suggestions. You paste the total into the spreadsheet you share with your partner. It is 10 too low. Every amount in the reply was copied correctly. The addition was wrong.
Nothing in the reply looked off. The sentence with the wrong total sounded exactly as confident as the sentences that were right. That is the reason to verify: you cannot tell from the writing which parts to trust.
Checking means comparing with something else
Reading a reply again and nodding is not a check. Neither is asking the model "are you sure?", for the reasons in Why Models Hallucinate. A real check compares the reply with something outside it: your original data, a calculation you run, an official document, a test that passes or fails.
The routine has two steps.
- Split the reply into claims. A claim is any sentence that could be true or false: a number, a name, a date, "this function handles empty input", "the report says X".
- Check each claim the way that suits its type. Numbers get recomputed. Facts get looked up in a primary source. Code gets run. Citations get opened and read.
Watch a reply get checked
Here is the budget request and the reply. Read the reply once and see if anything jumps out.
Nothing jumps out, and that is the point. Step through checking its six claims one at a time.
- claims
claim check result 1 rent is the largest expense 2 rent is 36.5% of pay 3 total spending is 1,383 4 1,217 is left from pay 5 groceries are about 25% 6 transport at 70 saves 192 a year - checked
- 0
- wrong
- 0
1Each row is one claim from the reply, in the order it makes them. Most are numbers, so the check is to recompute them.
- claims
claim check result 1 rent is the largest expense 950 is the max correct 2 rent is 36.5% of pay 3 total spending is 1,383 4 1,217 is left from pay 5 groceries are about 25% 6 transport at 70 saves 192 a year - checked
- 1
- wrong
- 0
2Claim 1: compare with the notes. 950 is bigger than 312, 86 and 45. Correct.
- claims
claim check result 1 rent is the largest expense 950 is the max correct 2 rent is 36.5% of pay 950 / 2,600 = 36.5% correct 3 total spending is 1,383 4 1,217 is left from pay 5 groceries are about 25% 6 transport at 70 saves 192 a year - checked
- 2
- wrong
- 0
3Claim 2: 950 ÷ 2,600 = 0.365, so 36.5%. Correct.
- claims
claim check result 1 rent is the largest expense 950 is the max correct 2 rent is 36.5% of pay 950 / 2,600 = 36.5% correct 3 total spending is 1,383 sum = 1,393 wrong 4 1,217 is left from pay 5 groceries are about 25% 6 transport at 70 saves 192 a year - checked
- 3
- wrong
- 1
4Claim 3: add it up yourself. 950 + 312 + 86 + 45 = 1,393, not 1,383. A single slip, stated with full confidence.
- claims
claim check result 1 rent is the largest expense 950 is the max correct 2 rent is 36.5% of pay 950 / 2,600 = 36.5% correct 3 total spending is 1,383 sum = 1,393 wrong 4 1,217 is left from pay 2,600 − 1,393 = 1,207 wrong 5 groceries are about 25% 6 transport at 70 saves 192 a year - checked
- 4
- wrong
- 2
5Claim 4: 2,600 − 1,393 = 1,207. The reply's 1,217 is 2,600 − 1,383, so it is consistent with the wrong total. One error spread into a second claim.
- claims
claim check result 1 rent is the largest expense 950 is the max correct 2 rent is 36.5% of pay 950 / 2,600 = 36.5% correct 3 total spending is 1,383 sum = 1,393 wrong 4 1,217 is left from pay 2,600 − 1,393 = 1,207 wrong 5 groceries are about 25% 312 / 1,393 = 22.4% wrong 6 transport at 70 saves 192 a year - checked
- 5
- wrong
- 3
6Claim 5: 312 ÷ 1,393 is 22.4%. Even with the reply's own wrong total it would be 22.6%. "About 25%" is a rounded guess, not a calculation.
- claims
claim check result 1 rent is the largest expense 950 is the max correct 2 rent is 36.5% of pay 950 / 2,600 = 36.5% correct 3 total spending is 1,383 sum = 1,393 wrong 4 1,217 is left from pay 2,600 − 1,393 = 1,207 wrong 5 groceries are about 25% 312 / 1,393 = 22.4% wrong 6 transport at 70 saves 192 a year 16 × 12 = 192 correct - checked
- 6
- wrong
- 3
7Claim 6: (86 − 70) × 12 = 16 × 12 = 192. Correct. Advice built on your numbers needs the same check as the numbers.
- claims
claim check result 1 rent is the largest expense 950 is the max correct 2 rent is 36.5% of pay 950 / 2,600 = 36.5% correct 3 total spending is 1,383 sum = 1,393 wrong 4 1,217 is left from pay 2,600 − 1,393 = 1,207 wrong 5 groceries are about 25% 312 / 1,393 = 22.4% wrong 6 transport at 70 saves 192 a year 16 × 12 = 192 correct - checked
- 6
- wrong
- 3
8Result: 3 of 6 claims wrong, and two of them (the total and what is left over) trace back to one bad addition. Checking all six took a couple of minutes.
Numbers: recompute, never re-read
Language models produce numbers the same way they produce words, one token at a time. Simple arithmetic often comes out right, and sometimes it does not. When a number matters, recompute it from the inputs. For more than a couple of values, a few lines of code beat a calculator because you can rerun them.
const spending = { rent: 950, groceries: 312, transport: 86, phone: 45 };
const pay = 2600;
const total = Object.values(spending).reduce((sum, x) => sum + x, 0);
console.log("total:", total); // 1393
for (const [name, amount] of Object.entries(spending)) {
console.log(name, ((100 * amount) / total).toFixed(1) + "%");
}
// rent 68.2%, groceries 22.4%, transport 6.2%, phone 3.2%
console.log("left over:", pay - total); // 1207spending = {"rent": 950, "groceries": 312, "transport": 86, "phone": 45}
pay = 2600
total = sum(spending.values())
print("total:", total) # 1393
for name, amount in spending.items():
print(name, f"{100 * amount / total:.1f}%")
# rent 68.2%, groceries 22.4%, transport 6.2%, phone 3.2%
print("left over:", pay - total) # 1207If you ask the assistant to do the maths, ask it to write code like this and run it in a tool, or to show each step so you can check the steps. A number with no working is the hardest kind to trust.
Facts, code and citations
Facts
Names, dates, version numbers, laws, prices and quotes need a primary source: the official documentation, the original report, the law itself. A page that repeats the claim is weaker: it may copy the same mistake. For software, check the docs for the version you actually use. A function that existed three versions ago, or only in a different library, is a common wrong answer.
Code
Run it. Then try the inputs the example did not cover: empty, one item, duplicates, negative numbers, very large values. Coding With AI shows how to turn those cases into tests before you accept the code.
Citations
A citation is three claims at once: the source exists, it says what the reply says it says, and it is about the same thing. Check all three.
- Open it. A link that fails to load, or a paper you cannot find by its title, is a red flag.
- Find the sentence. Search the page for the specific number or phrase. A source on the right topic that does not contain the claim does not support it.
- Read around it. A quote can be real and still mean the opposite in context, or describe a different year, country or product.
How much to check
You do not need to verify a brainstorm of party themes. You do need to verify a figure going to your manager, a dose, a legal deadline or code going to production. Before checking, ask: if this is wrong, who notices, and what does it cost? Then check the claims where the answer is "someone else, and a lot" first.
Try it yourself
An assistant wrote this paragraph for a team update. List each claim, say how you would check it, and say which one you would check first.
Show a sample answer
Six claims hide in three sentences:
- 1,240 in May and 1,550 in June: compare with your analytics dashboard, the primary source.
- 20% increase: recompute. (1,550 − 1,240) ÷ 1,240 = 310 ÷ 1,240 = 25%, not 20%. This one is wrong.
- Most growth came from referrals: check sign-ups by source. This is a claim about cause, and the reply may have guessed it from the launch date.
- Launched on June 3: check the release notes or the team calendar.
- The guide's quote: open the guide, search for "well above typical", and check that it talks about the same kind of product and the same measure.
Check the percentage first: it takes ten seconds and the whole update leans on it. Then the cause claim, because it will shape what the team does next.
Common mistakes
Check yourself
A reply says "your three invoices total 4,215". What is the right check?
A cited article exists and is about the right topic, but you cannot find the quoted sentence in it. What should you conclude?
Which output most needs careful checking before it is used?
What to practise next
Take the last long AI reply you used for something real and split it into claims. Check the two that would hurt most if wrong. Then continue with Writing a Good Brief, which shows how to ask for work that is easier to check in the first place.