How to compare two documents with ChatGPT properly
Working with documentsLast checked
Short answer
Do it in two passes. Summarise each document separately against the same fixed set of questions, then paste those summaries back and ask the comparative question. Uploading both at once blends the sources, and the result is confident, readable, and impossible to check.
Why one upload of both goes wrong
It reads well, which is the problem.
With both documents in view at once, the output merges them. You get statements that are true of one, or of neither, presented as though they applied to both, and no way to trace a claim back to its source without rereading everything.
There is also a length issue. Two long documents together are twice as likely to exceed 2 million tokens, and past that the file is truncated silently. A comparison built on all of document one and half of document two looks exactly like a complete comparison.
The two pass method
Decide your dimensions first
Three to five things you actually care about. For contracts: termination, liability, payment, renewal. For proposals: price, timeline, scope, assumptions. This is the step that decides whether the output is useful.
Summarise document one against exactly those dimensions
"For this document, give me: [dimension 1], [dimension 2], [dimension 3]. One short paragraph each, with the section number each came from. Say 'not covered' where it is absent."
Do the same for document two, in a fresh chat
A fresh chat matters. In the same conversation, the second summary is influenced by the first, and you lose the independence that makes the comparison worth anything.
Paste both summaries into a third chat and compare
"Here are structured summaries of two vendor proposals. Where do they differ materially, which difference carries the most risk for us, and where does either fail to address a dimension?"
The identical structure is what does the work
Because both summaries answer the same questions in the same order, differences line up. A dimension one document covers and the other does not becomes visible immediately, and gaps are usually more important than differences.
Ask for a table, with columns you name
Prose comparisons are hard to scan and easy to hide vagueness in.
Table with columns: dimension, document A, document B, which is better for us and why.
Naming the columns forces a position on every row. A comparison that will not commit to a column is telling you the documents are the same on that dimension, which is itself worth knowing.
The questions worth asking
Beyond simply listing differences.
What is missing from both? Two contracts can share the same gap, and a comparison focused on differences will never surface it.
Which differences actually matter? Most differences are wording. Ask which ones change an obligation, a cost, or a risk.
Where do they contradict each other on the same fact? Two documents describing the same project with different figures is a finding, not a formatting issue.
What would each side argue? For a negotiation, better preparation than a difference list.
Where it is the wrong tool
Exact wording changes. A redline is a character level operation, and a comparison tool does it properly. Use one for what changed, then bring the changed clauses here for what they mean.
Numerical reconciliation. Two spreadsheets that should agree are a job for a spreadsheet. Upload them and ask for the reconciliation logic if you like, but check the arithmetic yourself.
Anything where the layout carries meaning. Images inside documents are discarded on every plan except Enterprise, so a comparison of two visually designed documents is comparing their text only.
Comparing more than two
Same method, more passes. Summarise each into the identical structure, then compare the summaries together.
This scales further than you would expect, because the summaries are short. Ten proposals, summarised into the same five dimensions, is a comfortable amount of text to reason over at once, where ten full proposals is not.
Common questions
Why are the comparisons so vague?
Usually because the request had no dimensions. Asked to compare two documents in general, it lists surface differences. Name the three or four things you care about and ask for a table, and it becomes specific.
Should I upload both documents at once?
Not for anything important. Summarise each separately against the same fixed questions, then compare the summaries. Uploading both blends them and you lose track of which claim came from which document.
Can it do a proper redline of two contract versions?
Not reliably at the character level, which is what a redline is. Use a document comparison tool for exact wording changes, then bring the changed clauses to ChatGPT for what they mean and who they favour.
How many documents can I compare at once?
Two works well. Beyond that, summarise each into the same structure first and compare the summaries, otherwise attribution breaks down and you cannot check any of it.
Keep reading
12 ways to get better answers out of ChatGPT about your documents
12 tips, and the first is a 30 second check, because long files are truncated with no warning. Then how to force quotes and stop invented answers.
Using ChatGPT for contract review
3 things it does reliably: plain-English translation, spotting missing clauses, finding one-sided terms. 4 it cannot. Plus the data setting to check first.
How to summarise long documents with ChatGPT
Anything past 2 million tokens is cut off silently, so run the last section test before you read the summary. Then the prompts that stop it coming back bland.
How to pull specific data out of a document with ChatGPT
Name every field, name the format, demand the source: "Return a CSV with columns date, party, amount". The 3 rules that stop ChatGPT filling gaps for you.
How to work with many documents in one ChatGPT chat
Ten files in one conversation blur into one vague source. Label each on upload, order them deliberately, and know when to open a second chat.
Getting a whole website into ChatGPT, page by page
Pasting a URL gets you 1 page, and only when browsing works. Save each page as text, flatten them into one upload with URL headers, and quotes stay traceable.