Fastest fix: stop asking ChatGPT to “analyze” or “summarize” the file. Give it one concrete extraction task and force citations: List the 5 largest cost items. For each: exact figure, page number, and a verbatim one-line quote. If you can't quote it, say so. That single change fixes most “too shallow” complaints in one turn, before you touch the model picker.
“Analysis is too shallow” is almost never a model-capability problem. The details are in context (or partially are), but ChatGPT defaults to a “safe and broad summary” because that flatters most “help me look at this file” requests. To get evidence, numbers, and direct quotes, you have to explicitly demand structure, constrain the output format, and force citations.
One thing to internalize first: for anything past a few pages, ChatGPT does not read your whole file. It chunks the document, embeds the chunks, and retrieves only the top-k most relevant chunks per question (retrieval-augmented generation, or RAG). A successful upload does not mean the model has the whole file in front of it. That is the root cause behind cause 2 below, and it is why “read the entire 200-page report and tell me everything important” reliably produces shallow output.
Common causes
Ordered by hit rate, highest first.
1. Prompt uses fuzzy verbs (“analyze,” “summarize,” “take a look”)
The most common failure. “Help me analyze this report” reads as “give me a summary” to the model, so you get 5-7 generic bullets. Swap to list every expense item > $1M with page numbers and the output is unrecognizable.
How to spot it: Read your prompt out loud. Could it apply to a different file? If yes, it’s too fuzzy.
2. Retrieval pulled only top-level chunks; deep details never reached context
For large files (a PDF past ~30 pages, a doc past ~5MB), ChatGPT pulls top-k chunks per query. Top-k skews toward title, abstract, and table of contents — high-density passages. Body details often get dropped and never enter the model’s context at all.
How to spot it: Ask it to quote page 47, paragraph 2 verbatim. If it can’t, or quotes the wrong page, retrieval never reached there.
3. Output format unconstrained — model defaults to a safe bullet list
Without a structure spec, the model picks the format least likely to be wrong: 5-7 bullets, 1-2 sentences each. Give it a table or section template and it has to fill specific cells.
How to spot it: Are your last two answers both generic bullet lists? If yes, no structure was specified.
4. Negative prompts (“don’t be vague”) barely work
Models follow “do Y” much more reliably than “don’t do X.” “Don’t be shallow” is far weaker than “every claim must include a verbatim quote and a page number.”
How to spot it: Count the “don’t / avoid / not allowed” instructions versus “do / must / output.” More negatives means rewrite them as positives.
5. Model defaults to “short and safe” when uncertain
Poor extraction (scanned-PDF OCR, flattened tables, image-only pages) leaves the model uncertain about a lot of content, so it hedges with vague language. It looks shallow but actually means “I couldn’t read it.”
How to spot it: Lots of “may / typically / usually / in most cases” in the answer — it’s padding with general knowledge instead of reading your file.
6. Picking a reasoning model doesn’t fix a fuzzy prompt
GPT-5.5 Thinking and GPT-5.5 Pro synthesize better, but a fuzzy prompt plus more reasoning just gives you a prettier shallow answer. Depth comes from prompt structure, not from the model tier.
How to spot it: The same prompt produces similarly-shaped answers across GPT-5.5 Instant and GPT-5.5 Thinking — the bottleneck is the prompt, not the model.
Before you start
- Confirm whether this happens in a Project, a Custom GPT, or a plain chat — retrieval behavior differs across the three. (Plain-chat attachments and Project/GPT “Knowledge” files are both retrieved, not fully loaded.)
- Duplicate the chat before retesting so history doesn’t pollute the next diagnostic.
- Confirm your plan. As of June 2026, ChatGPT Plus ($20/mo) gives roughly 320 pages of in-app context; the full 1M-token context is only on the $200/mo Pro tier. Free, Go, Plus, Team, and Enterprise differ in context window and which models are available.
Info to collect
- File type, size (MB), pages / rows; whether it’s a scanned PDF; whether it has non-ASCII text, formulas, or tables.
- Upload route: dragged into the chat, added as Project files, or attached as Custom GPT Knowledge.
- Full prompt text plus the ChatGPT reply; highlight the two or three sentences you consider “shallow.”
- Current model from the picker (GPT-5.5 Instant / GPT-5.5 Thinking / GPT-5.5 Pro).
- One concrete example: page X contains data Y that the answer ignored.
Which bucket are you in
| Symptom you see | Most likely cause | Jump to |
|---|---|---|
| Generic bullets, no numbers, no pages | Fuzzy verb (cause 1) | Step 1 |
| It quotes the intro/TOC but misses body data | Retrieval missed it (cause 2) | Step 5 |
| Output is always the same shape | No format spec (cause 3) | Step 3 |
| Lots of “may / usually,” wrong figures | Bad extraction (cause 5) | Step 6 |
| Switching models changed nothing | Prompt, not model (cause 6) | Step 1 |
Shortest fix path
Ordered by ROI. The first two solve roughly 70% of cases.
Step 1: Replace fuzzy verbs with “list / extract / compare / quote”
Turn “Analyze this report” into a concrete action:
List the 5 largest cost items in this Q3 report. For each, give:
- The exact figure (with currency)
- The page number where it appears
- A one-line quote from the surrounding paragraph
Do not generalize. If you cannot find 5, return fewer.
The difference is large. “List / extract” triggers the retrieval-and-citation route; “analyze” triggers the summarize-and-smooth route.
Step 2: Require a quote and page per evidence point
Universal template:
For every claim you make:
- Quote the supporting sentence verbatim, in quotes.
- Cite the page number or section heading.
- If you cannot quote it, say "no direct support in document"
instead of inferring.
This forces the model out of summarization mode into citation mode. It gets slower, but the shallowness disappears.
Step 3: Give an output-structure template
Don’t let it freestyle. Provide a table or Markdown skeleton:
Output as a table with these columns:
Risk | Likelihood (low/med/high) | Quote from document | Page
Then below the table, list:
- 2 assumptions the document makes that you would challenge
- 1 missing analysis the document should have done
Empty cells force specific content. Shallowness can’t hide.
Step 4: Ask “what did you skip”
After the first answer:
What did you skip? List every section, table, and figure you did not
look at, and why. If you skipped anything because it didn't match a
keyword, list those keywords.
Models usually admit gaps when prompted, and you can aim follow-ups at exactly those gaps.
Step 5: Chunk by section and aggregate yourself
For large docs, don’t ask one whole-doc question. First:
List every section heading in this document with its page range.
Then ask section by section and aggregate the answers yourself. “Get full deep analysis in one shot” is an anti-pattern — depth-per-turn has a ceiling because each turn only retrieves a handful of chunks. Splitting a 200-page PDF into a few smaller uploads also raises the share of each file that actually reaches context.
Step 6: If extraction is bad, convert to Markdown first
For scanned PDFs and complex layouts, convert locally before uploading:
pip install marker-pdf
marker_single report.pdf --output_dir ./out --max_pages 200
Upload the resulting Markdown. Retrieval quality jumps because the text is now clean and structured, and the shallowness problem often disappears with it. (For spreadsheets, export xlsx to csv for the same reason.)
How to confirm the fix
- Open a fresh chat, upload the same file, and run your rewritten prompt — confirm the output reliably has concrete quotes and page numbers.
- Pick one quote from the answer and
Ctrl+Ffor it in the source PDF. If it isn’t there, the model fabricated it (treat that as a retrieval/extraction failure, not a win). - Have a colleague run the same prompt — this confirms depth comes from the prompt structure, not your session state.
If still broken
- Cut the file to the minimum: keep only the few pages that contain the data, then ask the same question. If depth returns, you had a retrieval problem.
- Swap the format to rule out an extraction-layer issue: PDF to Markdown,
xlsxtocsv. - Switch model: GPT-5.5 Instant to GPT-5.5 Thinking. Reasoning models synthesize more deeply on a structured prompt, but only after Steps 1-3 are in place.
- Package the source file, the exact prompt, and the model reply, and file a ticket at help.openai.com.
FAQ
Why does ChatGPT give a shallow summary even though the file uploaded fine? A successful upload doesn’t mean the model read the whole file. For anything past a few pages it retrieves only the top few relevant chunks per question, so most of the document never enters context. Ask narrow, citation-forcing questions instead of “summarize everything.”
Does switching to GPT-5.5 Thinking or Pro fix shallow analysis? Not on its own. A reasoning model gives a better-written shallow answer if the prompt is still fuzzy. Fix the prompt first (Steps 1-3); then a reasoning model adds real depth.
How big a file can ChatGPT actually analyze deeply? There’s no single page number, because depth is gated by per-turn retrieval, not just total size. As of June 2026 the practical move is to split very large PDFs and ask section by section. Plus gives roughly 320 pages of in-app context; the full 1M-token window is Pro-only.
Why does it quote a page that doesn’t exist, or quote nothing at all? Either retrieval never reached that page (large file, top-k missed it — see Step 5) or the text extracted badly (scanned or image-only PDF — see Step 6). Verify by asking it to quote a specific page verbatim; if it can’t, the content isn’t in context.
Is this different in a Project versus a Custom GPT? The retrieval mechanism is the same (chunk, embed, retrieve), but file caps differ. As of June 2026, Free can keep about 5 files in a Project and Plus about 25; a Custom GPT accepts up to 20 Knowledge files. More files means more competition for the same handful of retrieved chunks, so fewer, cleaner files usually analyze deeper.
Prevention
- Build a personal “deep analysis template”: list / extract / compare / quote / challenge as five fixed sections.
- Always end prompts with “Quote with page numbers; no inference without a quote.”
- Rewrite every negative instruction as a positive one.
- For recurring file shapes, build a Custom GPT with the depth requirements baked into its Instructions.
- Don’t just re-prompt a shallow answer — first ask “what did you skip.”
Related reading
- ChatGPT large document incomplete analysis
- ChatGPT uploaded PDF not analyzed correctly
- ChatGPT misreads your CSV / Excel data file
- ChatGPT Projects
- ChatGPT file analysis
- ChatGPT Projects advanced workflow
- ChatGPT Custom GPT Files Not Being Used
Tags: #ChatGPT #ChatGPT files #Troubleshooting #Debug #Shallow analysis