Home / Blog / ChatGPT Different Answers
How-to · 2026

Why ChatGPT Gives Different Answers From the Same Spreadsheet

You upload the same file and ask the same question, and the total moves. Usually nothing is broken. The model made a different decision about your data, and it did not tell you.

By · Published November 1, 2026 · 7 min read

ChatGPT gives different answers from the same spreadsheet because the numbers are not the only thing it works out. Each run also decides what your words mean, which rows count, and how to read a messy file, and OpenAI's own documentation says its models are non-deterministic by default. So the arithmetic may be fine while the choices behind it change. The fix is to find which choice moved and pin it down, and you can do that in about ten minutes.

The four causes, most common first

1. An undefined word

"Revenue" could be gross or net. "Last quarter" could be calendar or fiscal. "Customers" could be everyone or only those who paid. Your file does not say, so the model picks an interpretation, and it can pick another next time. We wrote about this in general in why AI gives you a different number every time. In a spreadsheet, it often looks like a choice between two similar columns, such as Amount and Net Amount.

2. The shape of the file

Spreadsheets built for people often confuse code. These are the specific things to look for:

3. Different code on each run

When ChatGPT analyzes an uploaded file, it writes and runs code. The code is usually sensible, but it is written fresh each time. One run removes duplicates and another does not. One filters blank statuses out and another keeps them. Python executes each version correctly, so being correct arithmetic is no protection.

4. Pasted text instead of a file

Paste a table into the chat and the model may answer from reading it, without running anything. This is the one case where the arithmetic itself is at risk, especially on long columns. Upload the file, and ask to see the code.

A ten-minute test to find your cause

  1. Get the true answer yourself. Use a pivot table or SUMIFS. Without this you only know the answers differ, not which is right.
  2. Ask the identical question in three new chats, uploading the same file each time, and record the answers.
  3. Then ask each one: How many rows did you include and exclude? Which columns and filters did you use? Show the code you ran.
  4. Compare.
What you seeCauseFix
Row counts differFile shapeOne flat table, one header row, no totals
Same rows, different column or filterUndefined wordWrite the definition in the prompt
Same method, different resultPasted text or a code slipUpload the file; check the code
Answers ratio is about 2.0A total row counted as dataDelete the total row

A prompt that holds up better

Once the file is one clean table, state the decisions rather than leaving them open:

Use the tab "Orders". The header is row 1. There is no total row.
Net sales = subtotal minus discount_amount, for all orders including refunded ones.
Use order_date for time. Last quarter means July 1 to September 30, 2026.
The sum of subtotal across all rows should be 412,906.40.
Reconcile to that first. If it does not match, stop and tell me.
Then give net sales by month, and show the code.

The control total does the most work. It costs a single line, and it catches dropped rows, doubled totals and the wrong tab all at once, because the model has to account for a figure it did not produce. In my experience, this is the single best habit for working with AI on spreadsheets.

From shipping this defect ourselves

I would not want this to read as a complaint about someone else's product. We hit a version of it in our own. Testing a Word report on sample apparel data, the headline figure, chart and table said year-to-date net sales were $216,541.74, and the commentary a few lines below said $195,729.64. Same data and same document, with both parts generated by our software. One path counted every order, and the other counted only paid orders, and each was a defensible reading of "net sales". The sentence was fluent, and nothing about it looked wrong until you compared it with the table. That is what convinced me a definition has to be stored somewhere outside the prompt, and enforced there.

How that figure was produced

One report, generated during our own testing on a sample dataset, and checked by recomputing both totals from the source CSVs. It illustrates a failure mode and says nothing about how often it happens. We have since changed how that path reads a definition.

What this will not fix

A good prompt works for you, today, in this chat. It does not help when a colleague asks the same question next week in their own words, or when you open a new chat and paste a shorter version. Custom instructions help a little, but they live with one person. If the number will be repeated, the definition has to live somewhere everyone's question passes through.

Where Quiriz is different, and where it is not

In Quiriz, an admin writes metric definitions once in Company Context: the formula, the dataset and the filter. Every question then uses them, whether it comes from the web app, a cell in Excel, Sheets, Slack or a report. When you import a file, it is converted into a typed table, so headers and types are settled once rather than guessed at on each question. If you ask for a value that is not in the data, it says so rather than returning a tidy zero.

The honest part. This fixes definitions, not bad data. Duplicates in your export stay duplicates until someone removes them. A question you have not defined a metric for is still interpreted by the model, and that interpretation can vary. For one question about one file, ChatGPT may well be the faster tool. We have a longer comparison if you want one. Quiriz earns its place when the same number has to come out the same way, for several people, month after month.

The same number, however it is asked

Try it on sample company data with no signup: ask a question, rephrase it, and compare the answers.

Try Quiriz free →

Frequently asked questions

Does ChatGPT calculate or guess?
Both can happen. When it runs code on an uploaded file, the arithmetic is real, but the code still reflects choices it made about your data. When you paste a table into the chat and it answers without running anything, it is working from text. Asking to see the code tells you which one you got.
Will a better model fix this?
A better model helps with messy files and arithmetic, but it cannot resolve a definition you never gave it. Whether revenue includes refunds is a decision about your business, not a fact in the file. Different models can reasonably choose differently, and each choice can look correct.
Can I make ChatGPT give the same answer every time?
You can get close by giving it one clean table, exact definitions, a control total and a request to show its code. You cannot get a guarantee. OpenAI’s own guidance on reproducible API output says determinism is not guaranteed even with a fixed seed, and the ChatGPT app gives you fewer controls than that.
Is it the model or my spreadsheet?
Run the test in this article. If the runs include different rows, the file is the problem: merged headers, total rows or mixed formats. If they include the same rows but use different filters or columns, the question is the problem. It is rarely the arithmetic.
Should I stop using ChatGPT for data analysis?
No. It is very good for exploring a file once, drafting formulas and getting a first read. The risk starts when a number gets repeated: in a monthly report, in a meeting, or by a colleague asking the same thing next week. Those are the numbers that need a written definition.