Skip to content
Notis
Dark navy Notis illustration: a pale spreadsheet card on the left fires a glowing blue arrow that stops dead against a translucent glass wall, with dimmed email, document and phone-chat cards stranded behind it.

ChatGPT Data Analysis: Where It Stops and What to Plug In

ChatGPT data analysis nails the middle step. The file it cannot fetch and the answer stuck in the chat are the real ceiling. Here is what to plug in.

Every month, the same ritual. Export the payments CSV from Stripe. Export another from the ad account. Drag both into a chat, ask which channel actually paid for itself, get a clean answer in under a minute. ChatGPT data analysis is genuinely good at that middle part — faster and more patient than I am with a pivot table. The problem is the two steps either side: getting the files, and doing something with the answer. Both still get done by hand, by me, on a Monday morning.

That is the ceiling people are hitting right now. Not an intelligence ceiling, a plumbing one, and the fix is not a better prompt.

Four-stage line diagram on an off-white background: three grey app tiles for shopping, payments and calendar, an arrow to an orange hand dragging a spreadsheet file with a repeat symbol above it, an arrow to a chat window showing a blue bar chart and a send bubble, then an arrow that fades into a dotted line and stops at a small grey square.

What ChatGPT data analysis actually does well

Credit where it is due. Hand it a clean file and a clear question and it writes and runs Python for you. OpenAI's own data analysis help page describes a stateful Jupyter notebook environment that summarises rows, columns, trends and outliers, runs statistical work, and renders charts as images, with a switch to interactive for bar, line, pie and scatter. It shows its code, so you can audit the method instead of trusting a number.

For a one-off question about a file already on your laptop, that is the best value in analytics. Nothing here is an argument against using it. It is an argument about where the workflow ends.

Where ChatGPT data analysis stops

Four walls, in the order you hit them.

It cannot go and get the data

Straight from that same help page, under Constraints: "The Python environment used for data analysis cannot make external web requests or API calls." No hitting your Stripe API, no read replica, no partner endpoint. The numbers have to arrive as a file that a human carried in.

Connectors soften this without removing it: the same page notes that where they are available you can attach files from Google Drive, OneDrive and SharePoint. That is a file picker, not a query. If the freshest version of the truth lives behind an API, somebody is still doing the export.

The file ceilings arrive earlier than you expect

OpenAI publishes these in the file uploads FAQ: a hard limit of 512MB per file, text and document files capped at 2M tokens each, and — the one that actually bites — "for CSV files or spreadsheets, the file size cannot exceed approximately 50MB, depending on the size of each row." A wide transactional export gets near that faster than you would like.

The throughput caps are on the same page: up to 80 files every 3 hours, 3 uploads per day on the free plan, and shared storage capped at 25GB per user and 100GB per organisation across chats, Projects and custom GPT knowledge.

Scans and screenshots are still a guess

The help page is blunt: ChatGPT "may not reliably extract exact values from image-based tables, scanned files, or files with complex visual layouts", and recommends uploading a spreadsheet or text-based file when exact values matter. Fine advice, useless when the source is a PDF a supplier emailed you. That is a separate job for a separate tool — hence pulling structured data out of PDF invoices automatically instead of hoping a chat window reads the table right.

The answer stops where you are standing

Here is where most advice on the internet is out of date. ChatGPT does schedule work now: scheduled tasks are available to Plus, Pro, Business and Enterprise users on web, mobile and desktop, they can use apps like Gmail when those are enabled, and OpenAI's pricing page lists "Projects, scheduled tasks, and custom GPTs" in the $20 per month Plus plan. A recurring Monday briefing is a solved problem.

The limits are in the shape, not the existence. The same page says tasks cannot run more than once per hour, and its Usage limitations section caps active tasks at 3 on Go, 5 on Plus, 10 on Business and Edu, and 15 on Pro and Enterprise. More importantly: "Scheduled tasks don't currently support webhooks, so they're better suited for scheduled or recurring check-ins than event-triggered automations."

So "every Monday at 7, summarise last week" works. "When a big refund lands, re-run the margin check and post it in the ops thread" does not. And either way the output appears in ChatGPT, a place you have to go and visit, rather than in the page the team reads or the thread where the decision gets made.

The job-by-job version

Job to be done ChatGPT data analysis alone What has to sit next to it
One question about a file on your laptop Excellent Nothing
Pull today's numbers from an API or database Blocked — the Python environment makes no external calls A fetch step with real credentials
Analyse a very large transactional export Over the ~50MB spreadsheet limit Filter or aggregate first, or use SQL
Read values off a scanned invoice Explicitly unreliable A document-extraction step
Same report, every Monday Scheduled tasks handle it Nothing, up to 5 active tasks on Plus
Run when a row changes or an email arrives No webhook support in tasks An event-triggered automation
Land the answer in Notion, a CRM or a WhatsApp thread Answer stays in the chat A delivery step into the tool of record

What to plug in

Three pieces, none of them a smarter model.

A fetch that is not a person. The analysis is only as fresh as the export. Wire the source once — Stripe, the CRM, the sheet, the inbox — so data arrives without anyone clicking Download.

A trigger that is not you remembering. Recurring is the easy half. The valuable half is event-driven: a new row, an inbound email, a webhook from your own product. That is the difference between a report and a system that tells you something you did not ask about.

A delivery that lands where the decision happens. An insight nobody reads is a rounding error. The output belongs in the page, the deal record or the thread — not in a scrollback.

Dark navy architecture diagram: four trigger tiles on the left with a clock, a plug, a database and a lightning bolt icon, thin glowing blue lines feeding a central blue agent node with concentric arcs, and three destination cards on the right — a phone with a chat bubble, a document page and an envelope — each marked with a blue check.

How I run it

I kept ChatGPT for thinking out loud with a file and moved the recurring work into Notis, where the trigger list is the point: notis.ai shows cron schedules, one-time runs, external webhook calls, integration events when an app event fires, and database changes on record create or update. The last two are what ChatGPT's tasks do not do yet.

The pattern I use most: an automation fires on a schedule or an event, the agent pulls current numbers from the integration rather than a stale export, does the arithmetic, writes the result into a Notion database, and messages me the two-line version on WhatsApp. If I want to argue with it, I reply in the same thread.

What surprised me is how small each run is. Notis usage is included in the plan rather than billed on top of it: the pricing page says Pro includes $20 of usage a month, Pro+ $59 and Ultra $149, and that last week's average across every Notis user came to $0.09 per task. Past the allowance, on-demand usage keeps running and is billed in arrears. Pay-per-use reads work the same way — a web page read is $0.0038 on the published rates — and any single call quoted above $1.20 is refused until I confirm it, which is the guardrail I wanted before letting anything run unattended. The plan is $13 a month billed annually.

One more thing if you already pay for ChatGPT: on any paid Notis plan you can connect that subscription and the model bill lands there instead of your Notis usage, so you are not buying the same tokens twice. For the full arithmetic on what an always-on agent costs, I broke down a real month of it.

Who should not bother

Stay with ChatGPT alone if the analysis is genuinely ad hoc: different question every time, file already on your machine, answer needed once. Adding a pipeline to that is a hobby, not a workflow.

Go to a warehouse and SQL if you need row-level joins across systems, or someone will audit the number. A chat sandbox is the wrong shape for that, and so is Notis.

Plug something in when you have run the same analysis three times, or when the interesting moment is an event rather than a date. The signal is the repetition, not the sophistication of the question.

ChatGPT does the analysis well and the logistics not at all. Most people diagnose that as needing a better model, buy a bigger plan, and keep exporting CSVs by hand. The fix sits upstream and downstream of the smart part. The limitations post covers the rest of those walls.

is the founder of Mind the Flo, an Agentic Studio specialized into messaging and voice agents.

Related posts