Skip to content
PromptsBuddy
All prompts
DataintermediateClaudeChatGPT

Read a spreadsheet like an analyst, not a summariser

Interrogates a dataset before describing it: what's missing, what's double-counted, which column is lying, and only then what it appears to say.

The prompt· 0/3 variables filled
~309 tokens
Here is a dataset and the question I want answered.

DATA:
{{DATA}}

QUESTION: {{QUESTION}}
WHERE IT CAME FROM: {{PROVENANCE}}

Do not answer the question yet. Work in this order:

**1. What this data can and cannot answer.** Given the columns and the
provenance, state plainly whether my question is answerable at all. If it is
only partly answerable, say which part.

**2. Integrity check.** Look for: missing values and whether they're missing
at random, duplicate rows, a join that could double-count, dates in mixed
formats or timezones, outliers that look like data-entry errors, and columns
whose meaning is ambiguous from the header alone. Quote example rows.

**3. The one column I'd distrust most**, and why.

**4. Now answer**, with the specific caveat that belongs next to the number.

**5. What would make this trustworthy** — the extra column, source, or check
that would move this from suggestive to solid.

Rules:
- Do not compute a summary statistic before step 2. A mean over dirty data is
  worse than no number.
- Do not infer causation from a before/after split. Say what else changed in
  that window that you would need to rule out.
- If the sample is too small to support the question, say the number and stop.

Fill in the blanks

Run it in:ClaudeChatGPT

What goes in each blank

DATA
Paste the sheet as CSV, or the first 50 rows plus the column list.e.g. Paste CSV, headers included.
QUESTION
What you're hoping it tells you.e.g. Whether churn got worse after the March pricing change.
PROVENANCE
Where the data came from and how it was collected — this is where most errors live.e.g. Exported from Stripe, joined to a hand-maintained CRM sheet by email.

Notes from people who use it

  • Provenance is the highest-value field. Most data errors are joining errors, and the model can't see the join from the CSV.
  • Step 3 is uncannily good — 'the column I'd distrust most' catches things like a status field that was backfilled.
  • Never paste customer data. Anonymise, or use a structurally identical sample.

Use this as a skill

A prompt is a skill with the serial numbers filed off. Install it once and your agent reaches for it on its own.

Paste this into ChatGPT, Claude Code, Codex, Cursor, or whatever you use:

Install the read-a-spreadsheet-like-an-analyst skill globally from https://promptsbuddy.com/prompts/read-a-spreadsheet-like-an-analyst/skill.md
Add to Cursor

.claude/skills/read-a-spreadsheet-like-an-analyst/SKILL.md

---
name: read-a-spreadsheet-like-an-analyst
description: "Interrogates a dataset before describing it: what's missing, what's double-counted, which column is lying, and only then what it appears to say. Use when the user asks for help with data tasks like data, analysis, spreadsheet."
license: CC-BY-4.0
metadata:
  source: https://promptsbuddy.com/prompts/read-a-spreadsheet-like-an-analyst
  author: "Sam Reyes"
  version: "1.0"
---

# Read a spreadsheet like an analyst, not a summariser

Interrogates a dataset before describing it: what's missing, what's double-counted, which column is lying, and only then what it appears to say.

## Inputs to collect first

Ask the user for anything below that they have not already given you. Do not
invent values for these.

- `DATA` — Paste the sheet as CSV, or the first 50 rows plus the column list. (e.g. Paste CSV, headers included.)
- `QUESTION` — What you're hoping it tells you. (e.g. Whether churn got worse after the March pricing change.)
- `PROVENANCE` — Where the data came from and how it was collected — this is where most errors live. (e.g. Exported from Stripe, joined to a hand-maintained CRM sheet by email.)

## Instructions

Here is a dataset and the question I want answered.

DATA:
{{DATA}}

QUESTION: {{QUESTION}}
WHERE IT CAME FROM: {{PROVENANCE}}

Do not answer the question yet. Work in this order:

**1. What this data can and cannot answer.** Given the columns and the
provenance, state plainly whether my question is answerable at all. If it is
only partly answerable, say which part.

**2. Integrity check.** Look for: missing values and whether they're missing
at random, duplicate rows, a join that could double-count, dates in mixed
formats or timezones, outliers that look like data-entry errors, and columns
whose meaning is ambiguous from the header alone. Quote example rows.

**3. The one column I'd distrust most**, and why.

**4. Now answer**, with the specific caveat that belongs next to the number.

**5. What would make this trustworthy** — the extra column, source, or check
that would move this from suggestive to solid.

Rules:
- Do not compute a summary statistic before step 2. A mean over dirty data is
  worse than no number.
- Do not infer causation from a before/after split. Say what else changed in
  that window that you would need to rule out.
- If the sample is too small to support the question, say the number and stop.

## Notes from people who use this

- Provenance is the highest-value field. Most data errors are joining errors, and the model can't see the join from the CSV.
- Step 3 is uncannily good — 'the column I'd distrust most' catches things like a status field that was backfilled.
- Never paste customer data. Anonymise, or use a structurally identical sample.

---

Read a spreadsheet like an analyst, not a summariser · by Sam Reyes · v1.0
From PromptsBuddy — https://promptsbuddy.com/prompts/read-a-spreadsheet-like-an-analyst
Licensed CC BY 4.0.

Every prompt is also available at /prompts/read-a-spreadsheet-like-an-analyst/skill.md — see all install options.

Integrity before insight

Ask a model to analyse a spreadsheet and it will describe it — means, trends, a tidy narrative — because that is what "analyse this" usually gets rewarded for. The description is confident regardless of whether the data supports it.

Forcing the integrity pass first changes what the answer is allowed to be, and frequently the honest output is "this cannot answer your question", which is worth more than a plausible chart.

Try these next

Productbeginner

Turn a messy meeting transcript into a decision doc

Separates what was decided from what was merely discussed, attributes owners, and flags the open questions everyone left the room assuming someone else would answer.

ClaudeChatGPTGemini3 vars
Lena FischerLena Fischer