Draft, pending test: written from current vendor docs. We have not run this workflow end to end yet, so nothing below is a measured result. Not indexed.
AI for data analysis: a step-by-step workflow on a real CSV
Start with a schema-and-quality prompt that forces the model to describe columns, types, missing values and odd rows before any analysis. Then ask for a short analysis plan, approve it, and move the actual calculations into Google Sheets (or Python) so every number is checkable. Treat the AI's first totals and charts as draft until you've re-run the formulas yourself.
Who it's for & level
Operators, founders and marketers who live in spreadsheets, already use ChatGPT, and need a trustworthy read of a CSV (exports from Stripe, HubSpot, GA, your own app) without becoming a data scientist.
- Level
- intermediate
- Tools
- Roles
- Operators Founders & small biz
- Goals
- Automate busywork
- Tasks
- Workflow automation
- Time to set up
- 20–40 min for a checked first analysis (est.)
- Cost
- Included in a paid ChatGPT or Claude plan. Large files use more of the plan's message/file quota. Google Sheets is free for this size of work.
- Time saved
- 1–2 h of manual pivot tables and formula hunting on a new export (est.) (est.)
- Test status
- Pending test
- Last verified
- pending test
- Model versions
- n/a
- Written by
- Usecased editorial (pending test) (agent)
- Published
- 2026-10-15
Prerequisites
- A paid ChatGPT plan (or Claude with file upload) that can accept CSV files. Free tiers often refuse or truncate large files.
- A CSV under a few megabytes with a header row. Remove columns with secrets (emails, tokens) first, or use a scrubbed export.
- Google Sheets (or Excel) to re-run the key calculations.
- One question you actually need answered, e.g. 'which plan has the highest churn this quarter?'.
The problem
Dumped CSVs sit for weeks because opening them means figuring out column meanings, cleaning blanks and building pivots. Asking ChatGPT 'analyze this' produces confident charts that invent columns, misread dates or average percentages. You need a workflow that uses AI for the messy exploration and keeps the numbers somewhere you can audit.
Steps
- Scrub the export. Drop columns you don't need and anything personally identifiable you don't want in a chat. Keep a copy of the original. Note the date of the export and the filter used (e.g. 'paid customers, last 90 days').
- Profile the file first. Upload the CSV and run the profile prompt below. Do not ask for insights yet. The goal is a shared map of the columns, types and quality issues.
- Fix or document quality issues. If the profile finds blank IDs, mixed date formats or duplicate rows, either clean them in Sheets first or tell the model how to treat them. Wrong cleaning = wrong answers later.
- Ask for a plan, then approve it. Give your business question and ask for a short analysis plan (which columns, which aggregations, which filters). Approve or edit the plan before any charts.
- Run the analysis. Ask for the results as tables, not just prose, with the exact formula or SQL-style expression used for each number. Prefer 'here's the Sheets formula' over 'the average is 12.4%'.
- Re-run the key numbers in Sheets. Paste the CSV into Google Sheets, apply the formulas the model gave you, and compare. Any mismatch means the chat answer is wrong until you reconcile it.
Exact prompt & config
I've uploaded a CSV. Do not analyze it yet.
Return:
1. Column list: name, inferred type, example values, % missing.
2. Row count and any duplicate-key candidates (suggest which column looks like an ID).
3. Oddities: mixed formats, outliers in numeric columns, columns that look like free text.
4. Three clarifying questions before any analysis.
If a column is unclear, say "unclear" rather than guessing its meaning.
Business question: which subscription plan had the highest churn rate in the last 90 days, and what share of churned users cancelled within the first 30 days?
Columns you can use: plan, status, signup_date, cancel_date, mrr.
Propose an analysis plan: filters, definitions (what counts as churned), aggregations, and the output tables. Wait for my OK. No numbers yet.
Plan approved. Compute the tables.
For every number, give me: the result, the filter used, and a Google Sheets formula that would compute the same thing if the CSV is on Sheet1 with headers in row 1.
Flag any number you're less than confident about.
Recompute churn rate for plan "Pro" only, showing numerator and denominator separately.
If your earlier Pro churn figure doesn't match, explain which definition differs.
Sample output
Example output, written to show the expected shape. Not captured from a real run yet.
(Example of the expected shape, not a captured run) Profile: 12 columns, 4,812 rows. plan (enum: Free/Pro/Team), status, signup_date (ISO), cancel_date (blank if active), mrr (number). 3% of rows missing plan. signup_date has 14 values like "09/01/2026" mixed with ISO. Plan approved → Tables: Churn by plan (90d): Free 18.2% (n=…), Pro 9.1% (n=…), Team 4.4% (n=…) Of churned, cancelled ≤30d: Free 61%, Pro 44%, Team 29% Sheets formula example: =COUNTIFS(B:B,"Pro",D:D,">="&TODAY()-90,C:C,"cancelled") / COUNTIFS(B:B,"Pro",D:D,">="&TODAY()-90) Flagged: Free-plan "churn" may include users who never activated; confirm definition.
Why profile first
Jumping straight to ‘find insights’ is how you get confident nonsense. A forced profile step makes the model show its homework: which columns it thinks it has, which rows it will drop, how it will treat blanks. Most mistakes surface there, before any chart exists.
Moving the final numbers into Sheets (or Python) is the other half. The chat becomes a planning and drafting tool; the spreadsheet becomes the source of truth.
The loop that keeps you in control
- Scrub secrets and note the export filters.
- Profile columns, types, missingness, oddities.
- Plan the analysis against a single business question.
- Compute with formulas or code you can see.
- Re-run the key figures outside the chat.
If a number can’t be reproduced, it isn’t a finding.
Going further
Save the profile and plan prompts as a custom GPT / Claude Project instruction so every new export starts the same way. For recurring reports, have the model write the Sheets formulas once, then refresh the sheet from a new CSV without going back to chat.
How it went
Pending test. What we expect, based on the vendor docs and public reports below. This becomes a measured result after our run.
Expected result, pending our test: the profile step should surface real quality issues, and the Sheets re-run should catch at least one wrong number from the chat on a messy CSV. We'll record how often the first totals matched Sheets, which error types showed up (date parsing, % of %, wrong filters) and how long a checked analysis took.
Worth knowing
- LLMs invent columns and misread dates. Always ask for the formula, then re-run it.
- Percentage-of-percentage and weighted averages are common failure modes. Demand numerator and denominator separately.
- File size and row limits depend on the plan; large CSVs get truncated without a clear warning. Check the reported row count against yours.
- Uploading customer data to a consumer chat may violate your privacy policy or DPA. Scrub PII or use a workspace plan with the right retention settings.
- Charts the model draws are illustrations. Rebuild them from the verified table.
FAQ
Can ChatGPT analyze a CSV?
Yes, on plans that support file uploads. Upload the file, ask for a schema and quality profile first, then for the analysis. Always re-check key numbers in Sheets or code.
Is AI accurate for data analysis?
It's good at exploring and suggesting approaches, and unreliable at exact aggregations. Use it to plan and draft, then compute the numbers yourself.
ChatGPT or Claude for CSV analysis?
Both work. Pick the one whose file limits fit your export, and run the same profile → plan → Sheets-check loop on either.
What about Code Interpreter / Advanced Data Analysis?
When available, prefer it for the calculations (it runs real Python). Still ask it to print the code it ran and spot-check a couple of results.
Related use cases
- ChatGPT agent mode is gone: competitor analysis and price monitoring with ChatGPT Work
- n8n MCP server: build, test and publish n8n workflows from Claude Code
- AI for social media: from one blog post to 30 days of posts [draft, pending test]
- AI competitor analysis: a step-by-step workflow with Grok and ChatGPT [draft, pending test]